Python C API (PyObject_CallMethod clear object)

Gabriel Genellina gagsl-py2 at yahoo.com.ar
Sun Jan 25 21:25:46 EST 2009


En Sun, 25 Jan 2009 23:46:01 -0200, <googler.1.webmaster at spamgourmet.com>  
escribió:

> I have a problm with deallocating stuff. I call a function with this
> command:
>
> PyObject *rvalue = PyObject_CallMethod(obj, "execute","",NULL);
>
> if(rvalue==NULL)
>     PyErr_Print();
> else
>     Py_DECREF(rvalue);
>
> Can it be, that something is missing here? Imagine I allocate an
> object of a type:
>
> t = MyImage()
> ,;- syntax_error 129=)/%  #is a syntax error
>
> How you see I would get a syntaxerror, but an object of the type
> MyImage() is created. But its deallocated when Py_Finalize() is
> called. What can I do to deallocate this object after
> PyObject_CallMethod returns NULL, too? I debug it, so if rvalue!=NULL
> the object is deallocated, but what can I do if rvalue==NULL=

A syntax error is detected *before* the code runs -- so the object isn't  
created at all.

-- 
Gabriel Genellina




More information about the Python-list mailing list