X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FSMDS%2FSMDS_IteratorOfElements.cxx;h=472ae0d54058883c21e4c9545ec8343ef980d695;hp=3f1a392fd231843b441e1695ceb4b6aedb2d7292;hb=090aff07266d376ae028ae43434bdea7c0a0f9bb;hpb=ec6221e48c7b7c6ee6e11008d57d0bfc0dd41992 diff --git a/src/SMDS/SMDS_IteratorOfElements.cxx b/src/SMDS/SMDS_IteratorOfElements.cxx index 3f1a392fd..472ae0d54 100644 --- a/src/SMDS/SMDS_IteratorOfElements.cxx +++ b/src/SMDS/SMDS_IteratorOfElements.cxx @@ -19,15 +19,18 @@ // // See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +#ifdef _MSC_VER +#pragma warning(disable:4786) +#endif + #include "SMDS_IteratorOfElements.hxx" bool SMDS_IteratorOfElements::subMore() { - if((t2Iterator==NULL)||(!t2Iterator->more())) + if((t2Iterator.get()==NULL)||(!t2Iterator->more())) { if(t1Iterator->more()) { - if(t2Iterator!=NULL) delete t2Iterator; t2Iterator=t1Iterator->next()->elementsIterator(myType); return subMore(); } @@ -38,14 +41,9 @@ bool SMDS_IteratorOfElements::subMore() const SMDS_MeshElement * SMDS_IteratorOfElements::subNext() { - if((t2Iterator==NULL)||(!t2Iterator->more())) - { + if((t2Iterator.get()==NULL)||(!t2Iterator->more())) if(t1Iterator->more()) - { - if(t2Iterator!=NULL) delete t2Iterator; t2Iterator=t1Iterator->next()->elementsIterator(myType); - } - } return t2Iterator->next(); } @@ -54,9 +52,12 @@ const SMDS_MeshElement * SMDS_IteratorOfElements::subNext() /// to the element element. it is the iterator to get connectivity of element ////////////////////////////////////////////////////////////////////////////// SMDS_IteratorOfElements::SMDS_IteratorOfElements(const SMDS_MeshElement * element, - SMDSAbs_ElementType type, SMDS_Iterator* it) - :t1Iterator(it), t2Iterator(NULL), myType(type), myElement(element), - myProxyElement(NULL) + SMDSAbs_ElementType type, + const SMDS_ElemIteratorPtr& it) + : t1Iterator(it), + t2Iterator(SMDS_ElemIteratorPtr((SMDS_ElemIterator*)NULL)), + myType(type), myElement(element), + myProxyElement(NULL) { while(subMore()) alreadyReturnedElements.insert(subNext()); @@ -81,7 +82,7 @@ bool SMDS_IteratorOfElements::more() if(myReverseIteration) { - SMDS_Iterator * it= + SMDS_ElemIteratorPtr it= myProxyElement->elementsIterator(myElement->GetType()); while(it->more()) { @@ -103,9 +104,3 @@ const SMDS_MeshElement * SMDS_IteratorOfElements::next() myProxyElement=NULL; return e; } - -SMDS_IteratorOfElements::~SMDS_IteratorOfElements() -{ - delete t1Iterator; - if(t2Iterator!=NULL) delete t2Iterator; -}