13
Czy ten wyciek ?:Czy to PyList_Append (lista, Py_BuildValue (...)) wyciek?
static PyObject* foo(PyObject* self, PyObject* args){
PyObect* list = PyList_New(0);
for(int i = 0; i < 100; i++)
// leak? does PyList_Append increment ref of the temporary?
PyList_Append(list, Py_BuildValue("i", 42));
return list;
}
Choć przypuszczam, że lepiej, aby to zrobić, w każdym razie ?:
static PyObject* foo(PyObject* self, PyObject* args){
PyObect* list = PyList_New(100);
for(int i = 0; i < 100; i++)
PyList_SetItem(list, i, Py_BuildValue("i", 42));
return list;
}
Dzięki za potwierdzenie moich podejrzeń! – James
Skąd pochodzi dokumentacja Pythona, że PyList_Append zwiększa wartość refcount przechowywanego obiektu? Nigdzie tego nie widzę. –