Thanks for the reply.  Of course you're right, Py_DECREF() might cause
infinite recursion. (At least the docs say Py_DECREF() calls tp_dealloc when
the refcount reaches 0)  I'm a bit confused as to why we manipulate the
refcount at all.  Since this is the dealloc method isn't the refcount 0
already?  And the object is freed at the end of the method unconditionally
too, so there's no chance of resurrection, right?

I realize I might be missing some important CPython implementation details
(I try to look them up before I blurt everything out at least) so I
appreciate that you guys are humoring my questions.

Thanks,
Dan

On May 12, 2010 8:25 PM, "Robert Bradshaw" <[email protected]>
wrote:

On May 12, 2010, at 5:44 PM, Dan Roberts wrote:
> While we're talking about this sort of thing, in C...
Py_DECREF checks to see if the refcount is 0 and if so invokes the
deallocation methods. This is in the deallocation method, so we
wouldn't want that. (The refcount is temporarily bumped up so that it
doesn't go to 0 while executing the body of the function.)


> Cheers,
> Dan
>
> P.S. What would be the ideal way for me to contribute things back in
> the fu...
Yes, that would work well. You could also post patches to
http://trac.cython.org/cython_trac
 (just send one of us an htpasswd entry offlist for an account).


>
>>
>> >
>> > On May 9, 2010 3:49 AM, "Stefan Behnel" <[email protected]>
>> wrote:
>> >
>> > ...

> _______________________________________________
> Cython-dev mailing list
> [email protected]...
_______________________________________________
Cython-dev mailing list
[email protected]
http://codespeak.net/mailman/listinfo/cython-dev

Reply via email to