-// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2019 CEA/DEN, EDF R&D, OPEN CASCADE
//
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
size_t myNbToFind, myNbFound, myTotalNb;
vector< const SMDS_MeshElement*>& myFoundElems;
bool & myFoundElemsOK;
+ bool myFoundElemsChecked;
TIterator( const SMESH_PredicatePtr& filter,
SMDS_ElemIteratorPtr& elems,
myNbFound( 0 ),
myTotalNb( totalNb ),
myFoundElems( foundElems ),
- myFoundElemsOK( foundElemsOK )
+ myFoundElemsOK( foundElemsOK ),
+ myFoundElemsChecked( false )
{
myFoundElemsOK = false;
next();
}
~TIterator()
{
- if ( !myFoundElemsOK )
+ if ( !myFoundElemsChecked && !myFoundElemsOK )
clearVector( myFoundElems );
}
virtual bool more()
}
if ( !myFoundElemsOK )
clearVector( myFoundElems );
+
+ myFoundElemsChecked = true; // in destructor: not to clearVector() which may already die
}
};