summaryrefslogtreecommitdiff
path: root/cpp/src/Ice/Buffer.cpp
diff options
context:
space:
mode:
authorDwayne Boone <dwayne@zeroc.com>2006-10-26 17:10:07 +0000
committerDwayne Boone <dwayne@zeroc.com>2006-10-26 17:10:07 +0000
commit7866175bc5d5952b92c98b2c6844738bbeb20a4d (patch)
treeb604a1b9f0e869a91df900a71ac5c9abff9ff4f8 /cpp/src/Ice/Buffer.cpp
parentMakefile.mak cleanup (diff)
downloadice-7866175bc5d5952b92c98b2c6844738bbeb20a4d.tar.bz2
ice-7866175bc5d5952b92c98b2c6844738bbeb20a4d.tar.xz
ice-7866175bc5d5952b92c98b2c6844738bbeb20a4d.zip
Bug 1366 - buffer max size
Diffstat (limited to 'cpp/src/Ice/Buffer.cpp')
-rw-r--r--cpp/src/Ice/Buffer.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/cpp/src/Ice/Buffer.cpp b/cpp/src/Ice/Buffer.cpp
index dc8a6595827..1273ea92aaa 100644
--- a/cpp/src/Ice/Buffer.cpp
+++ b/cpp/src/Ice/Buffer.cpp
@@ -22,10 +22,11 @@ IceInternal::Buffer::swap(Buffer& other)
std::swap(i, other.i);
}
-IceInternal::Buffer::Container::Container(IceInternal::MemoryPool* pool) :
+IceInternal::Buffer::Container::Container(IceInternal::MemoryPool* pool, size_type maxCapacity) :
_buf(0),
_size(0),
_capacity(0),
+ _maxCapacity(maxCapacity),
_pool(pool)
{
}
@@ -73,7 +74,7 @@ IceInternal::Buffer::Container::reserve(size_type n)
{
if(n > _capacity)
{
- _capacity = std::max<size_type>(n, 2 * _capacity);
+ _capacity = std::max<size_type>(n, std::min(2 * _capacity, _maxCapacity));
_capacity = std::max<size_type>(static_cast<size_type>(240), _capacity);
}
else if(n < _capacity)