From 7866175bc5d5952b92c98b2c6844738bbeb20a4d Mon Sep 17 00:00:00 2001 From: Dwayne Boone Date: Thu, 26 Oct 2006 17:10:07 +0000 Subject: Bug 1366 - buffer max size --- cpp/src/Ice/Buffer.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'cpp/src/Ice/Buffer.cpp') 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(n, 2 * _capacity); + _capacity = std::max(n, std::min(2 * _capacity, _maxCapacity)); _capacity = std::max(static_cast(240), _capacity); } else if(n < _capacity) -- cgit v1.2.3