diff --git a/src/conversion/ccm/common/ccmBase.C b/src/conversion/ccm/common/ccmBase.C index d6e9b47e03db982d68ae659a7817e0f52ef995fe..cb8fecdf3a39d8c845adc5b9732ad0de8f2c89c7 100644 --- a/src/conversion/ccm/common/ccmBase.C +++ b/src/conversion/ccm/common/ccmBase.C @@ -5,7 +5,7 @@ \\ / A nd | www.openfoam.com \\/ M anipulation | ------------------------------------------------------------------------------- - Copyright (C) 2016-2019 OpenCFD Ltd. + Copyright (C) 2016-2020 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -89,8 +89,7 @@ bool Foam::ccm::base::close() { CCMIOCloseFile(nullptr, globalState_->root); } - delete globalState_; - globalState_ = nullptr; + globalState_.reset(nullptr); return true; } diff --git a/src/conversion/ccm/common/ccmBase.H b/src/conversion/ccm/common/ccmBase.H index 9e14e0d8216867098031db02de8e221f65d8e1f5..e4966fdf3ab3db413cc825874aeb016a566c28d5 100644 --- a/src/conversion/ccm/common/ccmBase.H +++ b/src/conversion/ccm/common/ccmBase.H @@ -41,6 +41,7 @@ SourceFiles #ifndef ccmBase_H #define ccmBase_H +#include <memory> #include <string> // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -50,8 +51,7 @@ namespace Foam namespace ccm { -// * * * * * * * * * * * * * Forward Declarations * * * * * * * * * * * * * // - +// Forward Declarations class ccmGlobalState; // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -62,21 +62,12 @@ class ccmGlobalState; class base { - // Private Member Functions - - //- No copy construct - base(const base&) = delete; - - //- No copy assignment - void operator=(const base&) = delete; - - protected: // Protected Data //- Maintain overall global states (error, root-node) - ccmGlobalState* globalState_; + std::unique_ptr<ccmGlobalState> globalState_; // Protected Member Functions @@ -99,11 +90,18 @@ protected: bool assertNoError(const std::string& msg) const; + //- No copy construct + base(const base&) = delete; + + //- No copy assignment + void operator=(const base&) = delete; + + public: // Constructors - //- Construct null + //- Default construct. Initializes the global-state. base(); @@ -113,8 +111,6 @@ public: // Member Functions - // Access - //- Explicitly close the file and terminate ccmio access. // Return false if it was already closed. bool close(); diff --git a/src/conversion/ccm/common/ccmInternal.H b/src/conversion/ccm/common/ccmInternal.H index db3d6ac6194b5857afc8be075324879bacf6bb3d..302f5c28dfae54ec8ca3f4ed8e26e4b3c69fb4c3 100644 --- a/src/conversion/ccm/common/ccmInternal.H +++ b/src/conversion/ccm/common/ccmInternal.H @@ -5,7 +5,7 @@ \\ / A nd | www.openfoam.com \\/ M anipulation | ------------------------------------------------------------------------------- - Copyright (C) 2016 OpenCFD Ltd. + Copyright (C) 2016-2020 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -33,14 +33,14 @@ Description #include "className.H" #include "List.H" -// headers and definitions for using libccmio +// Headers and definitions for using libccmio #include "libccmio/ccmio.h" -// low-level routines are also needed +// Low-level routines are also needed #include "libccmio/ccmiocore.h" #include "libccmio/ccmioutility.h" -// don't want these defines to leak through +// Do not allow these defines to leak through #undef TRUE #undef FALSE @@ -62,10 +62,7 @@ NamespaceName("ccm"); //- A C++ wrapper for the C struct -class ccmID -: - public CCMIOID -{}; +class ccmID : public CCMIOID {}; //- A C++ wrapper for the C struct class ccmNODE @@ -146,6 +143,7 @@ public: class ccmMaps { public: + //- The cell map ccmID cells; diff --git a/src/conversion/ccm/reader/ccmReader.C b/src/conversion/ccm/reader/ccmReader.C index 89f272e42bae6fa694fafe84d97af974b0a677e9..845735eee13641b0005ee8c04548666a8a6ec396 100644 --- a/src/conversion/ccm/reader/ccmReader.C +++ b/src/conversion/ccm/reader/ccmReader.C @@ -714,7 +714,6 @@ Foam::ccm::reader::reader(const fileName& file, const reader::options& opts) Foam::ccm::reader::~reader() { close(); - deleteDemandDrivenData(options_); } diff --git a/src/conversion/ccm/reader/ccmReader.H b/src/conversion/ccm/reader/ccmReader.H index bbfa1420b513cff7bbfc0b11a836052e3eda174a..f84425911dfb9df7534308c2926fa6373eeb7666 100644 --- a/src/conversion/ccm/reader/ccmReader.H +++ b/src/conversion/ccm/reader/ccmReader.H @@ -5,7 +5,7 @@ \\ / A nd | www.openfoam.com \\/ M anipulation | ------------------------------------------------------------------------------- - Copyright (C) 2016 OpenCFD Ltd. + Copyright (C) 2016-2020 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -204,10 +204,10 @@ private: static const char* cellTableOptstr[]; - // Private data + // Private Data //- Reader options - const options* options_; + const unique_ptr<options> options_; //- Enumeration defining the status of a ccmio node diff --git a/src/conversion/ccm/writer/ccmWriter.C b/src/conversion/ccm/writer/ccmWriter.C index 1bebd94a2127ac0195cbc583c31f420a5ac7bdbc..19c7323c167dd9e5c99462e476dd52d8cb511ee3 100644 --- a/src/conversion/ccm/writer/ccmWriter.C +++ b/src/conversion/ccm/writer/ccmWriter.C @@ -5,7 +5,7 @@ \\ / A nd | www.openfoam.com \\/ M anipulation | ------------------------------------------------------------------------------- - Copyright (C) 2016-2018 OpenCFD Ltd. + Copyright (C) 2016-2020 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -30,7 +30,6 @@ License #include "demandDrivenData.H" #include "ccmInternal.H" // include last to avoid any strange interactions - // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // // Name for the topology file reference @@ -377,8 +376,6 @@ Foam::ccm::writer::writer Foam::ccm::writer::~writer() { close(); - - deleteDemandDrivenData(maps_); } diff --git a/src/conversion/ccm/writer/ccmWriter.H b/src/conversion/ccm/writer/ccmWriter.H index 0f7c9e39e5d31be8d168c8132925eb71ce88ae23..a5e06f9542a59996d0c1567787d4771cdb3ce1b2 100644 --- a/src/conversion/ccm/writer/ccmWriter.H +++ b/src/conversion/ccm/writer/ccmWriter.H @@ -5,7 +5,7 @@ \\ / A nd | www.openfoam.com \\/ M anipulation | ------------------------------------------------------------------------------- - Copyright (C) 2016 OpenCFD Ltd. + Copyright (C) 2016-2020 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -132,7 +132,7 @@ class writer // Member Data //- MapIds for various components (cell, internalFaces, boundaries) - ccmMaps* maps_; + unique_ptr<ccmMaps> maps_; //- mesh reference const polyMesh& mesh_; diff --git a/src/conversion/common/reader/calcPointCells.C b/src/conversion/common/reader/calcPointCells.C index 54e03a1c40c99fc4e910b2b193aa76bb70874e64..e8c15ce17e45aca6329bf23b7969768e4606b87e 100644 --- a/src/conversion/common/reader/calcPointCells.C +++ b/src/conversion/common/reader/calcPointCells.C @@ -6,6 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2011-2016 OpenFOAM Foundation + Copyright (C) 2020 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -46,8 +47,8 @@ void Foam::meshReader::calcPointCells() const label nPoints = points_.size(); - pointCellsPtr_ = new labelListList(nPoints); - labelListList& ptCells = *pointCellsPtr_; + pointCellsPtr_.reset(new labelListList(nPoints)); + auto& ptCells = *pointCellsPtr_; forAll(ptCells, i) { diff --git a/src/conversion/common/reader/meshReader.C b/src/conversion/common/reader/meshReader.C index f13720e9cbd662158b2a649dceefe2d0d6ee23a0..5db5fb6b0d01853b0ce10836feaf00d7875713be 100644 --- a/src/conversion/common/reader/meshReader.C +++ b/src/conversion/common/reader/meshReader.C @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2011-2016 OpenFOAM Foundation - Copyright (C) 2019 OpenCFD Ltd. + Copyright (C) 2019-2020 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -31,7 +31,6 @@ License #include "polyMesh.H" #include "faceSet.H" #include "emptyPolyPatch.H" -#include "demandDrivenData.H" // * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // @@ -147,7 +146,7 @@ void Foam::meshReader::clearExtraStorage() boundaryIds_.clear(); baffleIds_.clear(); - deleteDemandDrivenData(pointCellsPtr_); + pointCellsPtr_.reset(nullptr); } @@ -190,12 +189,4 @@ Foam::meshReader::meshReader } -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -Foam::meshReader::~meshReader() -{ - deleteDemandDrivenData(pointCellsPtr_); -} - - // ************************************************************************* // diff --git a/src/conversion/common/reader/meshReader.H b/src/conversion/common/reader/meshReader.H index 156b94a9837e7a6cb579fdf761d0a7b87406c5da..aed1acadf6d91a094593df767508c4ead8fff080 100644 --- a/src/conversion/common/reader/meshReader.H +++ b/src/conversion/common/reader/meshReader.H @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2011-2016 OpenFOAM Foundation - Copyright (C) 2016 OpenCFD Ltd. + Copyright (C) 2016-2020 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -117,12 +117,12 @@ protected: private: - // Private data + // Private Data //- Point-cell addressing. Used for topological analysis // Warning. This point cell addressing list potentially contains // duplicate cell entries. Use additional checking - mutable labelListList* pointCellsPtr_; + mutable unique_ptr<labelListList> pointCellsPtr_; //- Association between two faces List<labelPair> interfaces_; @@ -205,7 +205,7 @@ private: protected: - // Protected member data + // Protected Data //- Referenced filename fileName geometryFile_; @@ -255,7 +255,7 @@ protected: cellTable cellTable_; - // Protected member functions + // Protected Member Functions //- Subclasses are required to supply this information virtual bool readGeometry(const scalar scaleFactor = 1.0) = 0; @@ -276,7 +276,7 @@ public: //- Destructor - virtual ~meshReader(); + virtual ~meshReader() = default; // Member Functions diff --git a/src/sampling/meshToMesh0/calculateMeshToMesh0Weights.C b/src/sampling/meshToMesh0/calculateMeshToMesh0Weights.C index 31d3cf001ca8d6564973fb5a93535934a62572d8..c6e71763b950527434d08139eccc11eab8c1214d 100644 --- a/src/sampling/meshToMesh0/calculateMeshToMesh0Weights.C +++ b/src/sampling/meshToMesh0/calculateMeshToMesh0Weights.C @@ -6,6 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2011-2016 OpenFOAM Foundation + Copyright (C) 2020 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -32,11 +33,8 @@ License void Foam::meshToMesh0::calculateInverseDistanceWeights() const { - if (debug) - { - InfoInFunction - << "Calculating inverse distance weighting factors" << endl; - } + DebugInFunction + << "Calculating inverse distance weighting factors" << nl; if (inverseDistanceWeightsPtr_) { @@ -46,10 +44,10 @@ void Foam::meshToMesh0::calculateInverseDistanceWeights() const } //- Initialise overlap volume to zero - V_ = 0.0; + V_ = 0; - inverseDistanceWeightsPtr_ = new scalarListList(toMesh_.nCells()); - scalarListList& invDistCoeffs = *inverseDistanceWeightsPtr_; + inverseDistanceWeightsPtr_.reset(new scalarListList(toMesh_.nCells())); + auto& invDistCoeffs = *inverseDistanceWeightsPtr_; // get reference to source mesh data const labelListList& cc = fromMesh_.cellCells(); @@ -134,11 +132,8 @@ void Foam::meshToMesh0::calculateInverseDistanceWeights() const void Foam::meshToMesh0::calculateInverseVolumeWeights() const { - if (debug) - { - InfoInFunction - << "Calculating inverse volume weighting factors" << endl; - } + DebugInFunction + << "Calculating inverse volume weighting factors" << endl; if (inverseVolumeWeightsPtr_) { @@ -148,10 +143,10 @@ void Foam::meshToMesh0::calculateInverseVolumeWeights() const } //- Initialise overlap volume to zero - V_ = 0.0; + V_ = 0; - inverseVolumeWeightsPtr_ = new scalarListList(toMesh_.nCells()); - scalarListList& invVolCoeffs = *inverseVolumeWeightsPtr_; + inverseVolumeWeightsPtr_.reset(new scalarListList(toMesh_.nCells())); + auto& invVolCoeffs = *inverseVolumeWeightsPtr_; const labelListList& cellToCell = cellToCellAddressing(); @@ -197,11 +192,8 @@ void Foam::meshToMesh0::calculateInverseVolumeWeights() const void Foam::meshToMesh0::calculateCellToCellAddressing() const { - if (debug) - { - InfoInFunction - << "Calculating cell to cell addressing" << endl; - } + DebugInFunction + << "Calculating cell to cell addressing" << endl; if (cellToCellAddressingPtr_) { @@ -211,12 +203,12 @@ void Foam::meshToMesh0::calculateCellToCellAddressing() const } //- Initialise overlap volume to zero - V_ = 0.0; + V_ = 0; tetOverlapVolume overlapEngine; - cellToCellAddressingPtr_ = new labelListList(toMesh_.nCells()); - labelListList& cellToCell = *cellToCellAddressingPtr_; + cellToCellAddressingPtr_.reset(new labelListList(toMesh_.nCells())); + auto& cellToCell = *cellToCellAddressingPtr_; forAll(cellToCell, iTo) diff --git a/src/sampling/meshToMesh0/meshToMesh0.C b/src/sampling/meshToMesh0/meshToMesh0.C index fb5fe0a25e8ceddfc4830ff1d157e44273a628a1..3a6636474753f2d1d283114c044cf166c4d5ae17 100644 --- a/src/sampling/meshToMesh0/meshToMesh0.C +++ b/src/sampling/meshToMesh0/meshToMesh0.C @@ -6,6 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2011-2016 OpenFOAM Foundation + Copyright (C) 2020 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -27,7 +28,6 @@ License #include "meshToMesh0.H" #include "processorFvPatch.H" -#include "demandDrivenData.H" // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // @@ -57,7 +57,7 @@ Foam::meshToMesh0::meshToMesh0 inverseDistanceWeightsPtr_(nullptr), inverseVolumeWeightsPtr_(nullptr), cellToCellAddressingPtr_(nullptr), - V_(0.0) + V_(0) { forAll(fromMesh_.boundaryMesh(), patchi) { @@ -125,7 +125,7 @@ Foam::meshToMesh0::meshToMesh0 inverseDistanceWeightsPtr_(nullptr), inverseVolumeWeightsPtr_(nullptr), cellToCellAddressingPtr_(nullptr), - V_(0.0) + V_(0) { // check whether both meshes have got the same number // of boundary patches @@ -191,14 +191,4 @@ Foam::meshToMesh0::meshToMesh0 } -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -Foam::meshToMesh0::~meshToMesh0() -{ - deleteDemandDrivenData(inverseDistanceWeightsPtr_); - deleteDemandDrivenData(inverseVolumeWeightsPtr_); - deleteDemandDrivenData(cellToCellAddressingPtr_); -} - - // ************************************************************************* // diff --git a/src/sampling/meshToMesh0/meshToMesh0.H b/src/sampling/meshToMesh0/meshToMesh0.H index 9d8df0b94bc91a9f3cfebb1922d4ce0fd375cef6..bb2ce9f784e9275632e7af9d83cd63766f8397f1 100644 --- a/src/sampling/meshToMesh0/meshToMesh0.H +++ b/src/sampling/meshToMesh0/meshToMesh0.H @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2011-2016 OpenFOAM Foundation - Copyright (C) 2019 OpenCFD Ltd. + Copyright (C) 2019-2020 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -55,9 +55,8 @@ SourceFiles namespace Foam { -template<class Type> -class indexedOctree; - +// Forward Declarations +template<class Type> class indexedOctree; class treeDataCell; /*---------------------------------------------------------------------------*\ @@ -66,9 +65,9 @@ class treeDataCell; class meshToMesh0 { - // Private data + // Private Data - // mesh references + // Mesh References const fvMesh& fromMesh_; const fvMesh& toMesh_; @@ -92,13 +91,13 @@ class meshToMesh0 labelListList boundaryAddressing_; //- Inverse-distance interpolation weights - mutable scalarListList* inverseDistanceWeightsPtr_; + mutable unique_ptr<scalarListList> inverseDistanceWeightsPtr_; //- Inverse-volume interpolation weights - mutable scalarListList* inverseVolumeWeightsPtr_; + mutable unique_ptr<scalarListList> inverseVolumeWeightsPtr_; //- Cell to cell overlap addressing - mutable labelListList* cellToCellAddressingPtr_; + mutable unique_ptr<labelListList> cellToCellAddressingPtr_; //- Overlap volume mutable scalar V_; @@ -130,7 +129,7 @@ class meshToMesh0 const labelListList& cellToCellAddressing() const; - // Private static data members + // Private Static Data Members //- Direct hit tolerance static const scalar directHitTol; @@ -175,7 +174,7 @@ public: //- Destructor - ~meshToMesh0(); + ~meshToMesh0() = default; //- Patch-field interpolation class diff --git a/src/surfMesh/polySurface/polySurfaceClear.C b/src/surfMesh/polySurface/polySurfaceClear.C index fac0516e22f2825d30e2bfca4e14c670a2ee9a5f..f8148f4fcc76cb26cb4058d50b4d8b42ace6b8b8 100644 --- a/src/surfMesh/polySurface/polySurfaceClear.C +++ b/src/surfMesh/polySurface/polySurfaceClear.C @@ -27,7 +27,6 @@ License #include "polySurface.H" #include "globalMeshData.H" -#include "demandDrivenData.H" // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // diff --git a/src/surfMesh/surfMesh/surfMesh.C b/src/surfMesh/surfMesh/surfMesh.C index ff63be45b9c18f6fc200e9632914a3d270553138..04d3bc2271331457bcd4fac86a7deec9eadccaf4 100644 --- a/src/surfMesh/surfMesh/surfMesh.C +++ b/src/surfMesh/surfMesh/surfMesh.C @@ -33,7 +33,6 @@ License #include "Time.H" #include "OSspecific.H" #include "MeshedSurface.H" -#include "demandDrivenData.H" // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // diff --git a/src/surfMesh/surfMesh/surfMeshClear.C b/src/surfMesh/surfMesh/surfMeshClear.C index 8b9b99d88e1a5a13d7766e2bc7d6fd163d086c38..4552b8cef3d553b319397d1341b49ecd6964ec14 100644 --- a/src/surfMesh/surfMesh/surfMeshClear.C +++ b/src/surfMesh/surfMesh/surfMeshClear.C @@ -28,7 +28,6 @@ License #include "surfMesh.H" #include "globalMeshData.H" -#include "demandDrivenData.H" // * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // diff --git a/src/surfMesh/triSurface/triSurface.C b/src/surfMesh/triSurface/triSurface.C index d554a2d8e54911d5494650af46a8c70b7c71cbce..850d444d0b12f81a677d444732b7e151522aa9e7 100644 --- a/src/surfMesh/triSurface/triSurface.C +++ b/src/surfMesh/triSurface/triSurface.C @@ -27,7 +27,6 @@ License \*---------------------------------------------------------------------------*/ #include "triSurface.H" -#include "demandDrivenData.H" #include "Time.H" #include "surfZoneList.H" #include "MeshedSurface.H" @@ -525,8 +524,8 @@ Foam::triSurface::~triSurface() void Foam::triSurface::clearTopology() { ParentType::clearTopology(); - deleteDemandDrivenData(sortedEdgeFacesPtr_); - deleteDemandDrivenData(edgeOwnerPtr_); + sortedEdgeFacesPtr_.reset(nullptr); + edgeOwnerPtr_.reset(nullptr); } @@ -585,7 +584,7 @@ const Foam::labelList& Foam::triSurface::edgeOwner() const void Foam::triSurface::movePoints(const pointField& pts) { // Remove all geometry dependent data - deleteDemandDrivenData(sortedEdgeFacesPtr_); + sortedEdgeFacesPtr_.reset(nullptr); // Adapt for new point positions ParentType::movePoints(pts); @@ -598,7 +597,7 @@ void Foam::triSurface::movePoints(const pointField& pts) void Foam::triSurface::swapPoints(pointField& pts) { // Remove all geometry dependent data - deleteDemandDrivenData(sortedEdgeFacesPtr_); + sortedEdgeFacesPtr_.reset(nullptr); // Adapt for new point positions ParentType::movePoints(pts); diff --git a/src/surfMesh/triSurface/triSurface.H b/src/surfMesh/triSurface/triSurface.H index 8179c39d0c95ea333188f995374ba45e4b862479..263d8e733f4c87a99247f8771dc3db416bd68d81 100644 --- a/src/surfMesh/triSurface/triSurface.H +++ b/src/surfMesh/triSurface/triSurface.H @@ -106,11 +106,11 @@ class triSurface // Demand driven private data. //- Edge-face addressing (sorted) - mutable labelListList* sortedEdgeFacesPtr_; + mutable unique_ptr<labelListList> sortedEdgeFacesPtr_; - //- Label of face that 'owns' edge (i.e. e.vec() is righthanded walk - //- along face) - mutable labelList* edgeOwnerPtr_; + //- Label of face that 'owns' edge + //- i.e. e.vec() is righthanded walk along face + mutable unique_ptr<labelList> edgeOwnerPtr_; // Private Member Functions diff --git a/src/surfMesh/triSurface/triSurfaceAddressing.C b/src/surfMesh/triSurface/triSurfaceAddressing.C index 54119133f2ae4f7a2573d682064c5f2dae93cafd..d8767b49c5ce61eff3f420ee28886e4bc9614aed 100644 --- a/src/surfMesh/triSurface/triSurfaceAddressing.C +++ b/src/surfMesh/triSurface/triSurfaceAddressing.C @@ -47,8 +47,8 @@ void Foam::triSurface::calcSortedEdgeFaces() const const labelListList& eFaces = edgeFaces(); - sortedEdgeFacesPtr_ = new labelListList(eFaces.size()); - labelListList& sortedEdgeFaces = *sortedEdgeFacesPtr_; + sortedEdgeFacesPtr_.reset(new labelListList(eFaces.size())); + auto& sortedEdgeFaces = *sortedEdgeFacesPtr_; sortedEdgeFaces = PatchTools::sortedEdgeFaces(*this); } @@ -63,9 +63,8 @@ void Foam::triSurface::calcEdgeOwner() const << abort(FatalError); } - // create the owner list - edgeOwnerPtr_ = new labelList(nEdges()); - labelList& edgeOwner = *edgeOwnerPtr_; + edgeOwnerPtr_.reset(new labelList(nEdges())); + auto& edgeOwner = *edgeOwnerPtr_; forAll(edges(), edgeI) {