From 1bf2ff430a8aa313d7e9f4ee372576b328b07a67 Mon Sep 17 00:00:00 2001 From: Michael Davidsaver Date: Tue, 14 May 2013 11:24:44 -0400 Subject: [PATCH] array resize respect immutability --- pvDataApp/factory/PVDataCreateFactory.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pvDataApp/factory/PVDataCreateFactory.cpp b/pvDataApp/factory/PVDataCreateFactory.cpp index 0a2fe00..e169596 100644 --- a/pvDataApp/factory/PVDataCreateFactory.cpp +++ b/pvDataApp/factory/PVDataCreateFactory.cpp @@ -231,7 +231,7 @@ DefaultPVArray::~DefaultPVArray() template void DefaultPVArray::setCapacity(size_t capacity) { - if(capacity>value.capacity()) { + if(this->isCapacityMutable() && capacity>value.capacity()) { value.reserve(capacity); PVArray::setCapacityLength(value.capacity(), value.size()); } @@ -240,6 +240,8 @@ void DefaultPVArray::setCapacity(size_t capacity) template void DefaultPVArray::setLength(size_t length) { + if(this->isImmutable()) + THROW_EXCEPTION2(std::logic_error,"Immutable"); if(length == value.size()) return; else if(length < value.size())