[Python-Dev] Big trouble in CVS Python

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


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

> However, co_consts 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