diff --git a/src/OpenFOAM/primitives/functions/DataEntry/Table/TableBase.C b/src/OpenFOAM/primitives/functions/DataEntry/Table/TableBase.C index 14d2fc210d..08dde8e758 100644 --- a/src/OpenFOAM/primitives/functions/DataEntry/Table/TableBase.C +++ b/src/OpenFOAM/primitives/functions/DataEntry/Table/TableBase.C @@ -35,15 +35,16 @@ const Foam::interpolationWeights& Foam::TableBase::interpolator() const if (interpolatorPtr_.empty()) { // Re-work table into linear list - tableSamples_.setSize(table_.size()); + tableSamplesPtr_.reset(new scalarField(table_.size())); + scalarField& tableSamples = tableSamplesPtr_(); forAll(table_, i) { - tableSamples_[i] = table_[i].first(); + tableSamples[i] = table_[i].first(); } interpolatorPtr_ = interpolationWeights::New ( interpolationScheme_, - tableSamples_ + tableSamples ); } @@ -81,7 +82,7 @@ Foam::TableBase::TableBase(const TableBase& tbl) interpolationScheme_(tbl.interpolationScheme_), table_(tbl.table_), dimensions_(tbl.dimensions_), - tableSamples_(tbl.tableSamples_), + tableSamplesPtr_(tbl.tableSamplesPtr_), interpolatorPtr_(tbl.interpolatorPtr_) {} @@ -341,7 +342,7 @@ void Foam::TableBase::convertTimeBase(const Time& t) table_[i].first() = t.userTimeToTime(value); } - tableSamples_.clear(); + tableSamplesPtr_.clear(); interpolatorPtr_.clear(); } diff --git a/src/OpenFOAM/primitives/functions/DataEntry/Table/TableBase.H b/src/OpenFOAM/primitives/functions/DataEntry/Table/TableBase.H index bd98858d71..929e151a0c 100644 --- a/src/OpenFOAM/primitives/functions/DataEntry/Table/TableBase.H +++ b/src/OpenFOAM/primitives/functions/DataEntry/Table/TableBase.H @@ -97,7 +97,7 @@ protected: dimensionSet dimensions_; //- Extracted values - mutable scalarField tableSamples_; + mutable autoPtr tableSamplesPtr_; //- Interpolator method mutable autoPtr interpolatorPtr_;