If cinit fails half way through you still may need to do some cleanup, hence dealloc which must be aware of this. On Oct 5, 2015 7:12 AM, "Jeroen Demeyer" <jdeme...@cage.ugent.be> wrote:
> Hello, > > I'm not entirely sure if this is a feature or bug... > > I noticed that, if a __cinit__ call raises an exception on an object, that > __dealloc__ on that same object is still called. > > The problem is that __cinit__ is supposed to set up the C-level attributes > for that object. If this somehow fails, then the object isn't in a > consistent state yet, so it makes no sense to call __dealloc__ on it. > > Do you consider this a Cython bug or should I manually protect my code > against this? > > > Thanks, > Jeroen. > _______________________________________________ > cython-devel mailing list > cython-devel@python.org > https://mail.python.org/mailman/listinfo/cython-devel >
_______________________________________________ cython-devel mailing list cython-devel@python.org https://mail.python.org/mailman/listinfo/cython-devel