mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2024-12-27 09:50:34 +05:00
PR: debug memory leak (EDF 2662)
non virtual destructors and missing delete...
This commit is contained in:
parent
8eee7182cb
commit
2dcc1590a3
@ -6360,7 +6360,7 @@ namespace // Utils used in SMESH_ElementSearcherImpl::FindElementsByPoint()
|
|||||||
void getElementsInSphere ( const gp_XYZ& center,
|
void getElementsInSphere ( const gp_XYZ& center,
|
||||||
const double radius, TIDSortedElemSet& foundElems);
|
const double radius, TIDSortedElemSet& foundElems);
|
||||||
size_t getSize() { return std::max( _size, _elements.size() ); }
|
size_t getSize() { return std::max( _size, _elements.size() ); }
|
||||||
~ElementBndBoxTree();
|
virtual ~ElementBndBoxTree();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
ElementBndBoxTree():_size(0) {}
|
ElementBndBoxTree():_size(0) {}
|
||||||
@ -6559,6 +6559,9 @@ namespace // Utils used in SMESH_ElementSearcherImpl::FindElementsByPoint()
|
|||||||
* of classification of point in 2D mesh
|
* of classification of point in 2D mesh
|
||||||
*/
|
*/
|
||||||
//=======================================================================
|
//=======================================================================
|
||||||
|
SMESH_ElementSearcher::~SMESH_ElementSearcher()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
struct SMESH_ElementSearcherImpl: public SMESH_ElementSearcher
|
struct SMESH_ElementSearcherImpl: public SMESH_ElementSearcher
|
||||||
{
|
{
|
||||||
@ -6572,8 +6575,8 @@ struct SMESH_ElementSearcherImpl: public SMESH_ElementSearcher
|
|||||||
set<const SMDS_MeshElement*> _outerFaces; // empty means "no internal faces at all"
|
set<const SMDS_MeshElement*> _outerFaces; // empty means "no internal faces at all"
|
||||||
|
|
||||||
SMESH_ElementSearcherImpl( SMESHDS_Mesh& mesh, SMDS_ElemIteratorPtr elemIt=SMDS_ElemIteratorPtr())
|
SMESH_ElementSearcherImpl( SMESHDS_Mesh& mesh, SMDS_ElemIteratorPtr elemIt=SMDS_ElemIteratorPtr())
|
||||||
: _mesh(&mesh),_meshPartIt(elemIt),_ebbTree(0),_nodeSearcher(0),_tolerance(-1),_outerFacesFound(false) {}
|
: _mesh(&mesh),_meshPartIt(elemIt),_ebbTree(0),_nodeSearcher(0),_tolerance(-1),_outerFacesFound(false) {MESSAGE("-----------> SMESH_ElementSearcherImpl constructor");}
|
||||||
~SMESH_ElementSearcherImpl()
|
virtual ~SMESH_ElementSearcherImpl()
|
||||||
{
|
{
|
||||||
if ( _ebbTree ) delete _ebbTree; _ebbTree = 0;
|
if ( _ebbTree ) delete _ebbTree; _ebbTree = 0;
|
||||||
if ( _nodeSearcher ) delete _nodeSearcher; _nodeSearcher = 0;
|
if ( _nodeSearcher ) delete _nodeSearcher; _nodeSearcher = 0;
|
||||||
|
@ -96,6 +96,7 @@ struct SMESH_ElementSearcher
|
|||||||
* \brief Find out if the given point is out of closed 2D mesh.
|
* \brief Find out if the given point is out of closed 2D mesh.
|
||||||
*/
|
*/
|
||||||
virtual TopAbs_State GetPointState(const gp_Pnt& point) = 0;
|
virtual TopAbs_State GetPointState(const gp_Pnt& point) = 0;
|
||||||
|
virtual ~SMESH_ElementSearcher();
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -49,6 +49,7 @@ public:
|
|||||||
// Constructor. limit must be provided at tree root construction.
|
// Constructor. limit must be provided at tree root construction.
|
||||||
// limit will be deleted by SMESH_Octree
|
// limit will be deleted by SMESH_Octree
|
||||||
SMESH_Octree (SMESH_TreeLimit* limit=0);
|
SMESH_Octree (SMESH_TreeLimit* limit=0);
|
||||||
|
virtual ~SMESH_Octree() {};
|
||||||
|
|
||||||
// Compute the bigger dimension of my box
|
// Compute the bigger dimension of my box
|
||||||
double maxSize() const;
|
double maxSize() const;
|
||||||
|
@ -1,24 +1,24 @@
|
|||||||
// Copyright (C) 2007-2013 CEA/DEN, EDF R&D, OPEN CASCADE
|
// Copyright (C) 2007-2013 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
//
|
//
|
||||||
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
//
|
//
|
||||||
// This library is free software; you can redistribute it and/or
|
// This library is free software; you can redistribute it and/or
|
||||||
// modify it under the terms of the GNU Lesser General Public
|
// modify it under the terms of the GNU Lesser General Public
|
||||||
// License as published by the Free Software Foundation; either
|
// License as published by the Free Software Foundation; either
|
||||||
// version 2.1 of the License.
|
// version 2.1 of the License.
|
||||||
//
|
//
|
||||||
// This library is distributed in the hope that it will be useful,
|
// This library is distributed in the hope that it will be useful,
|
||||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
// Lesser General Public License for more details.
|
// Lesser General Public License for more details.
|
||||||
//
|
//
|
||||||
// You should have received a copy of the GNU Lesser General Public
|
// You should have received a copy of the GNU Lesser General Public
|
||||||
// License along with this library; if not, write to the Free Software
|
// License along with this library; if not, write to the Free Software
|
||||||
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
//
|
//
|
||||||
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||||
//
|
//
|
||||||
|
|
||||||
// SMESH SMESH_Tree : tree implementation
|
// SMESH SMESH_Tree : tree implementation
|
||||||
// File : SMESH_Tree.hxx
|
// File : SMESH_Tree.hxx
|
||||||
@ -218,6 +218,8 @@ void SMESH_Tree<BND_BOX,NB_CHILDREN>::buildChildren()
|
|||||||
myChildren[i] = newChild();
|
myChildren[i] = newChild();
|
||||||
// and we assign to him its box.
|
// and we assign to him its box.
|
||||||
myChildren[i]->myFather = this;
|
myChildren[i]->myFather = this;
|
||||||
|
if (myChildren[i]->myLimit)
|
||||||
|
delete myChildren[i]->myLimit;
|
||||||
myChildren[i]->myLimit = myLimit;
|
myChildren[i]->myLimit = myLimit;
|
||||||
myChildren[i]->myLevel = myLevel + 1;
|
myChildren[i]->myLevel = myLevel + 1;
|
||||||
myChildren[i]->myBox = newChildBox( i );
|
myChildren[i]->myBox = newChildBox( i );
|
||||||
|
Loading…
Reference in New Issue
Block a user