[Numpy-discussion] C-API: deallocating a partially filled object array

Martin Wiechert martin.wiechert at gmx.de
Fri Jan 26 14:19:43 CST 2007


On Friday 26 January 2007 21:03, Robert Kern wrote:
> Martin Wiechert wrote:
> > Hi gurus,
> >
> > is it (in C) safe to deallocate an array of type NPY_OBJECT, which
> > carries NULL pointers?
>
> Possibly, I'm not sure without doing some more code-diving. However, I
> strongly doubt that many other operations are safe. Depending on how you
> got such an array and how long it's expected to live, you might want to fix
> the NULL pointers.

I'm asking because I'm using s.th. like the following idiom. Is the cleanup 
part clean?

--- snip ---

a = PyArray_SimpleNew (1, &n, NPY_OBJECT);
for (i=0; i < n; i++)
{
	new_obj = some_object_factory (...);
	if (new_obj == NULL)
		goto cleanup;
	((PyObject **) PyArray_DATA (a)) [i] = new_obj;
}
return a;

cleanup:
Py_DECREF (a);
return NULL;


More information about the Numpy-discussion mailing list