summaryrefslogtreecommitdiff
path: root/java/src/Ice/InputStreamI.java
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2013-01-23 14:36:10 +0100
committerBenoit Foucher <benoit@zeroc.com>2013-01-23 14:36:10 +0100
commit66bf1a7f2d0d46281ebf3d62caab6b9158eaa8a0 (patch)
treebd6aca447179f8d2e586c12cb961d683552504be /java/src/Ice/InputStreamI.java
parentMinor code style fixes (diff)
downloadice-66bf1a7f2d0d46281ebf3d62caab6b9158eaa8a0.tar.bz2
ice-66bf1a7f2d0d46281ebf3d62caab6b9158eaa8a0.tar.xz
ice-66bf1a7f2d0d46281ebf3d62caab6b9158eaa8a0.zip
Fix for ICE-4841 - added no copy option when creating input stream
Diffstat (limited to 'java/src/Ice/InputStreamI.java')
-rw-r--r--java/src/Ice/InputStreamI.java31
1 files changed, 18 insertions, 13 deletions
diff --git a/java/src/Ice/InputStreamI.java b/java/src/Ice/InputStreamI.java
index 68676199847..2fd21254f57 100644
--- a/java/src/Ice/InputStreamI.java
+++ b/java/src/Ice/InputStreamI.java
@@ -12,32 +12,37 @@ package Ice;
public class InputStreamI implements InputStream
{
public
- InputStreamI(Communicator communicator, byte[] data)
+ InputStreamI(Communicator communicator, byte[] data, boolean copyData)
{
_communicator = communicator;
IceInternal.Instance instance = IceInternal.Util.getInstance(communicator);
- _is = new IceInternal.BasicStream(instance, instance.defaultsAndOverrides().defaultEncoding, true, false);
- initialize(data);
+ initialize(instance, data, instance.defaultsAndOverrides().defaultEncoding, copyData);
}
public
- InputStreamI(Communicator communicator, byte[] data, EncodingVersion v)
+ InputStreamI(Communicator communicator, byte[] data, EncodingVersion v, boolean copyData)
{
_communicator = communicator;
- IceInternal.Instance instance = IceInternal.Util.getInstance(communicator);
- _is = new IceInternal.BasicStream(instance, v, true, false);
- initialize(data);
+ initialize(IceInternal.Util.getInstance(communicator), data, v, copyData);
}
private void
- initialize(byte[] data)
+ initialize(IceInternal.Instance instance, byte[] data, EncodingVersion v, boolean copyData)
{
+ if(copyData)
+ {
+ _is = new IceInternal.BasicStream(instance, v, true, false);
+ _is.resize(data.length, true);
+ IceInternal.Buffer buf = _is.getBuffer();
+ buf.b.position(0);
+ buf.b.put(data);
+ buf.b.position(0);
+ }
+ else
+ {
+ _is = new IceInternal.BasicStream(instance, v, data);
+ }
_is.closure(this);
- _is.resize(data.length, true);
- IceInternal.Buffer buf = _is.getBuffer();
- buf.b.position(0);
- buf.b.put(data);
- buf.b.position(0);
}
public Communicator