X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSMDS%2FSMDS_IteratorOfElements.cxx;h=77a00c80247bded651d377c1c63874a1dad94de3;hb=0811f12ddab92fe0e071a89873b92ed02c3630d4;hp=3f1a392fd231843b441e1695ceb4b6aedb2d7292;hpb=ec6221e48c7b7c6ee6e11008d57d0bfc0dd41992;p=modules%2Fsmesh.git diff --git a/src/SMDS/SMDS_IteratorOfElements.cxx b/src/SMDS/SMDS_IteratorOfElements.cxx index 3f1a392fd..77a00c802 100644 --- a/src/SMDS/SMDS_IteratorOfElements.cxx +++ b/src/SMDS/SMDS_IteratorOfElements.cxx @@ -17,17 +17,20 @@ // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com + +#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; -}