summaryrefslogtreecommitdiff
path: root/cs/src/Ice/BasicStream.cs
diff options
context:
space:
mode:
Diffstat (limited to 'cs/src/Ice/BasicStream.cs')
-rw-r--r--cs/src/Ice/BasicStream.cs40
1 files changed, 8 insertions, 32 deletions
diff --git a/cs/src/Ice/BasicStream.cs b/cs/src/Ice/BasicStream.cs
index ea9be7e7d9e..3ce5b71c121 100644
--- a/cs/src/Ice/BasicStream.cs
+++ b/cs/src/Ice/BasicStream.cs
@@ -103,23 +103,17 @@ namespace IceInternal
public BasicStream(Instance instance, Ice.EncodingVersion encoding)
{
- initialize(instance, encoding, false);
- _buf = new Buffer(instance.messageSizeMax());
- }
-
- public BasicStream(Instance instance, Ice.EncodingVersion encoding, bool unlimited)
- {
- initialize(instance, encoding, unlimited);
- _buf = new Buffer(instance.messageSizeMax());
+ initialize(instance, encoding);
+ _buf = new Buffer();
}
public BasicStream(Instance instance, Ice.EncodingVersion encoding, byte[] data)
{
- initialize(instance, encoding, false);
+ initialize(instance, encoding);
_buf = new Buffer(data);
}
- private void initialize(Instance instance, Ice.EncodingVersion encoding, bool unlimited)
+ private void initialize(Instance instance, Ice.EncodingVersion encoding)
{
instance_ = instance;
_closure = null;
@@ -132,9 +126,6 @@ namespace IceInternal
_sliceObjects = true;
- _messageSizeMax = instance_.messageSizeMax(); // Cached for efficiency.
- _unlimited = unlimited;
-
_startSeq = -1;
}
@@ -210,10 +201,6 @@ namespace IceInternal
resetEncaps();
other.resetEncaps();
- bool tmpUnlimited = other._unlimited;
- other._unlimited = _unlimited;
- _unlimited = tmpUnlimited;
-
int tmpStartSeq = other._startSeq;
other._startSeq = _startSeq;
_startSeq = tmpStartSeq;
@@ -231,14 +218,6 @@ namespace IceInternal
public void resize(int sz, bool reading)
{
- //
- // Check memory limit if stream is not unlimited.
- //
- if(!_unlimited && sz > _messageSizeMax)
- {
- Ex.throwMemoryLimitException(sz, _messageSizeMax);
- }
-
_buf.resize(sz, reading);
_buf.b.position(sz);
}
@@ -3420,6 +3399,10 @@ namespace IceInternal
{
throw new Ice.IllegalMessageSizeException("compressed size <= header size");
}
+ if(uncompressedSize > instance_.messageSizeMax())
+ {
+ IceInternal.Ex.throwMemoryLimitException(uncompressedSize, instance_.messageSizeMax());
+ }
int compressedLen = size() - headerSize - 4;
byte[] compressed = _buf.b.rawBytes(headerSize + 4, compressedLen);
@@ -3449,10 +3432,6 @@ namespace IceInternal
public void expand(int n)
{
- if(!_unlimited && _buf.b != null && _buf.b.position() + n > _messageSizeMax)
- {
- Ex.throwMemoryLimitException(_buf.b.position() + n, _messageSizeMax);
- }
_buf.expand(n);
}
@@ -5401,9 +5380,6 @@ namespace IceInternal
private bool _sliceObjects;
- private int _messageSizeMax;
- private bool _unlimited;
-
private int _startSeq;
private int _minSeqSize;