[Python-Dev] Big trouble in CVS Python (original) (raw)

Martin v. L�wis martin@v.loewis.de
13 Apr 2003 22:29:28 +0200


"Tim Peters" <tim_one@email.msn.com> writes:

However, coconsts is still alive and still points to it, so this deallocation is erroneous.

Notice, however, that the float object is not directly deallocated. Instead, it is deallocated as a consequence of deallocating a one-element tuple which is the argument tuple for "round", in

        PyObject *callargs;
        callargs = load_args(pp_stack, na);
        x = PyCFunction_Call(func, callargs, NULL);
        Py_XDECREF(callargs); 

load_args copies the argument from the stack into the tuple, transferring the refence. So apparently, the float const gets on the stack without its reference being bumped...

That's as far as I can get tonight.

Regards, Martin