The following code is pretty much straight out of section 1.2.1.1 of the Python/C reference manual:
#include <Python.h> int main(void) { PyObject *l, *x; Py_Initialize(); l = PyList_New(3); x = PyInt_FromLong(1L); if (l == NULL || x == NULL) { PyErr_Print(); exit (EXIT_FAILURE); } PySequence_SetItem(l, 0, x); Py_DECREF(x); Py_Finalize(); return EXIT_SUCCESS; } Unforunately, it doesn't work. It segfaults, and the error occurs in list_ass_item() when the Py_DECREF macro is applied to old_value, which was set at line 699 of Objects/listobject.c with old_value = a->ob_item[i]; (old_value is being set to NULL, and Py_DECREF is being applied to NULL...boom!) I'm totally new to embedding/extending python, so I'm not sure if I'm doing something incredibly stupid, but it certainly looks like PySequence_SetItem() was expecting that there should already be an item at the desired index. Am I doing something stupid? -- Bill Pursell -- http://mail.python.org/mailman/listinfo/python-list