I think what I'm doing in that patch is legal and well defined.

DeleteAtom basically does this:
_vatom.erase(_vatom.begin()+(atom->GetIdx()-1));

where _vatom is a vector of pointers to atoms. When the element of the
vector is deleted then all the iterators and references to elements
__after__ the position of the removed element become invalid. So if I
decrement the iterator back to the last unchanged position and then
increment it again it should point to the next element after the removed
one, and it does.


Reinis

Pk, 2011-05-27 12:49 +0100, Noel O'Boyle rakstīja:
> Regarding Patch 3196285, AFAIK, all of our iterators are undefined
> when you call DeleteAtom (this is a C++ idiom). The recommended way of
> doing this is to append the atom to be deleted to a vector, and then
> delete all members of the vector once the loop is over.
> 
> Anyone else?
> 
> - Noel
> 
> On 27 May 2011 12:14, My Th <rei4...@gmail.com> wrote:
> > Hi!
> >
> > A while ago I posted these patches in the tracker:
> > https://sourceforge.net/tracker/?func=detail&aid=3196280&group_id=40728&atid=428742
> > https://sourceforge.net/tracker/?func=detail&aid=3196285&group_id=40728&atid=428742
> >
> > The first one fixes indexing in obutil.cpp::InternalToCartesian(), the
> > second one fixes removal of dummy atoms in the same function.
> >
> > Before the code for removing dummy atoms never was executed and dummy
> > atoms were not removed. These patches fixes that, so the dummy atoms are
> > removed when the function obutil.cpp::InternalToCartesian() is called.
> >
> > These patches still are not committed. Is there some technical reason
> > for that? Could they be applied before the next point release of OB?
> >
> >
> > Regards,
> > Reinis
> >
> >
> > ------------------------------------------------------------------------------
> > vRanger cuts backup time in half-while increasing security.
> > With the market-leading solution for virtual backup and recovery,
> > you get blazing-fast, flexible, and affordable data protection.
> > Download your free trial now.
> > http://p.sf.net/sfu/quest-d2dcopy1
> > _______________________________________________
> > OpenBabel-Devel mailing list
> > OpenBabel-Devel@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/openbabel-devel
> >



------------------------------------------------------------------------------
vRanger cuts backup time in half-while increasing security.
With the market-leading solution for virtual backup and recovery, 
you get blazing-fast, flexible, and affordable data protection.
Download your free trial now. 
http://p.sf.net/sfu/quest-d2dcopy1
_______________________________________________
OpenBabel-Devel mailing list
OpenBabel-Devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openbabel-devel

Reply via email to