diff --git a/src/OpenFOAM/containers/Lists/DynamicList/DynamicListI.H b/src/OpenFOAM/containers/Lists/DynamicList/DynamicListI.H index fdd4ec571a8030dfdc4f56c1f76b4e3161b29445..97a0b724830ab5c89dfb49fcd815da9cb5aee5a8 100644 --- a/src/OpenFOAM/containers/Lists/DynamicList/DynamicListI.H +++ b/src/OpenFOAM/containers/Lists/DynamicList/DynamicListI.H @@ -28,11 +28,8 @@ License template<class T, unsigned SizeInc, unsigned SizeMult, unsigned SizeDiv> inline Foam::DynamicList<T, SizeInc, SizeMult, SizeDiv>::DynamicList() : - List<T>(0), capacity_(0) -{ - List<T>::size(0); -} +{} template<class T, unsigned SizeInc, unsigned SizeMult, unsigned SizeDiv> @@ -144,28 +141,14 @@ inline void Foam::DynamicList<T, SizeInc, SizeMult, SizeDiv>::reserve const label nElem ) { - // Allocate more capacity? + // Allocate more capacity if necessary if (nElem > capacity_) { - // TODO: convince the compiler that division by zero does not occur - // if (SizeInc && (!SizeMult || !SizeDiv)) - // { - // // resize with SizeInc as the granularity - // capacity_ = nElem; - // unsigned pad = SizeInc - (capacity_ % SizeInc); - // if (pad != SizeInc) - // { - // capacity_ += pad; - // } - // } - // else - { - capacity_ = max - ( - nElem, - label(SizeInc + capacity_ * SizeMult / SizeDiv) - ); - } + capacity_ = max + ( + nElem, + label(SizeInc + capacity_ * SizeMult / SizeDiv) + ); // Adjust allocated size, leave addressed size untouched label nextFree = List<T>::size(); @@ -181,28 +164,14 @@ inline void Foam::DynamicList<T, SizeInc, SizeMult, SizeDiv>::setSize const label nElem ) { - // Allocate more capacity? + // Allocate more capacity if necessary if (nElem > capacity_) { - // TODO: convince the compiler that division by zero does not occur - // if (SizeInc && (!SizeMult || !SizeDiv)) - // { - // // resize with SizeInc as the granularity - // capacity_ = nElem; - // unsigned pad = SizeInc - (capacity_ % SizeInc); - // if (pad != SizeInc) - // { - // capacity_ += pad; - // } - // } - // else - { - capacity_ = max - ( - nElem, - label(SizeInc + capacity_ * SizeMult / SizeDiv) - ); - } + capacity_ = max + ( + nElem, + label(SizeInc + capacity_ * SizeMult / SizeDiv) + ); List<T>::setSize(capacity_); } @@ -289,8 +258,9 @@ template<class T, unsigned SizeInc, unsigned SizeMult, unsigned SizeDiv> inline void Foam::DynamicList<T, SizeInc, SizeMult, SizeDiv>::transfer(List<T>& lst) { + // Take over storage, clear addressing for lst. capacity_ = lst.size(); - List<T>::transfer(lst); // Take over storage, clear addressing for lst. + List<T>::transfer(lst); } @@ -304,7 +274,6 @@ Foam::DynamicList<T, SizeInc, SizeMult, SizeDiv>::transfer // Take over storage as-is (without shrink), clear addressing for lst. capacity_ = lst.capacity_; lst.capacity_ = 0; - List<T>::transfer(static_cast<List<T>&>(lst)); } @@ -342,7 +311,7 @@ Foam::DynamicList<T, SizeInc, SizeMult, SizeDiv>::append if (this == &lst) { FatalErrorInFunction - << "attempted appending to self" << abort(FatalError); + << "Attempted appending to self" << abort(FatalError); } label nextFree = List<T>::size(); @@ -429,7 +398,7 @@ inline void Foam::DynamicList<T, SizeInc, SizeMult, SizeDiv>::operator= if (this == &lst) { FatalErrorInFunction - << "attempted assignment to self" << abort(FatalError); + << "Attempted assignment to self" << abort(FatalError); } if (capacity_ >= lst.size())