File: | snackmodule.c |
Function: | widgetCheckboxTreeGetSel |
Error: | ob_refcnt of PyListObject is 1 too high |
1282 static PyObject * widgetCheckboxTreeGetSel(snackWidget * s,
1283 PyObject * args) {
1284 void ** selection;
1285 int numselected;
1286 int i;
1287 PyObject * sel;
1288
1289 if (!PyArg_ParseTuple(args, ""))
1290 return NULL;
when PyArg_ParseTuple() succeeds
taking False path
1291
1292 selection = (void **) newtCheckboxTreeGetSelection(s->co, &numselected);
1293
1294 sel = PyList_New(0);
1295
when PyList_New() succeeds
PyListObject allocated at: sel = PyList_New(0);
ob_refcnt is now refs: 1 + N where N >= 0
1296 if (!selection) {
1297 return sel;
when treating unknown const void * * from snackmodule.c:1293 as non-NULL
taking False path
1298 }
1299
1300 sel = PyList_New(0);
1301 for (i = 0; i < numselected; i++) {
when PyList_New() succeeds
1302 PyList_Append(sel, PyInt_FromLong((long) selection[i]));
when taking True path
when taking False path
1303 }
when PyInt_FromLong() succeeds
when PyList_Append() succeeds
1304 free(selection);
1305
1306 return sel;
1307 }
1308
File: | snackmodule.c |
Function: | widgetCheckboxTreeGetSel |
Error: | ob_refcnt of PyIntObject is 1 too high |
1282 static PyObject * widgetCheckboxTreeGetSel(snackWidget * s,
1283 PyObject * args) {
1284 void ** selection;
1285 int numselected;
1286 int i;
1287 PyObject * sel;
1288
1289 if (!PyArg_ParseTuple(args, ""))
1290 return NULL;
when PyArg_ParseTuple() succeeds
taking False path
1291
1292 selection = (void **) newtCheckboxTreeGetSelection(s->co, &numselected);
1293
1294 sel = PyList_New(0);
1295
when PyList_New() succeeds
1296 if (!selection) {
1297 return sel;
when treating unknown const void * * from snackmodule.c:1293 as non-NULL
taking False path
1298 }
1299
1300 sel = PyList_New(0);
1301 for (i = 0; i < numselected; i++) {
when PyList_New() succeeds
1302 PyList_Append(sel, PyInt_FromLong((long) selection[i]));
when taking True path
when taking False path
1303 }
when PyInt_FromLong() succeeds
when PyList_Append() succeeds
PyIntObject allocated at: PyList_Append(sel, PyInt_FromLong((long) selection[i]));
ob_refcnt is now refs: 1 + N where N >= 0
ob_refcnt is now refs: 2 + N where N >= 0
PyIntObject is now referenced by 1 non-stack value(s): PyListObject.ob_item[0]
1304 free(selection);
1305
1306 return sel;
1307 }
1308
File: | snackmodule.c |
Function: | widgetCheckboxTreeGetSel |
Error: | calling PyList_Append with NULL as argument 1 (sel) at snackmodule.c:1303 |
1282 static PyObject * widgetCheckboxTreeGetSel(snackWidget * s,
1283 PyObject * args) {
1284 void ** selection;
1285 int numselected;
1286 int i;
1287 PyObject * sel;
1288
1289 if (!PyArg_ParseTuple(args, ""))
1290 return NULL;
when PyArg_ParseTuple() succeeds
taking False path
1291
1292 selection = (void **) newtCheckboxTreeGetSelection(s->co, &numselected);
1293
1294 sel = PyList_New(0);
1295
when PyList_New() succeeds
1296 if (!selection) {
1297 return sel;
when treating unknown const void * * from snackmodule.c:1293 as non-NULL
taking False path
1298 }
1299
1300 sel = PyList_New(0);
1301 for (i = 0; i < numselected; i++) {
when PyList_New() fails
1302 PyList_Append(sel, PyInt_FromLong((long) selection[i]));
when taking True path
1303 }
when PyInt_FromLong() succeeds
calling PyList_Append with NULL as argument 1 (sel) at snackmodule.c:1303
PyList_Append() invokes Py_TYPE() on the pointer via the PyList_Check() macro, thus accessing (NULL)->ob_type
found 3 similar trace(s) to this
1304 free(selection);
1305
1306 return sel;
1307 }
1308
File: | snackmodule.c |
Function: | widgetCheckboxTreeGetSel |
Error: | ob_refcnt of '*sel' is 1 too high |
1282 static PyObject * widgetCheckboxTreeGetSel(snackWidget * s,
1283 PyObject * args) {
1284 void ** selection;
1285 int numselected;
1286 int i;
1287 PyObject * sel;
1288
1289 if (!PyArg_ParseTuple(args, ""))
1290 return NULL;
when PyArg_ParseTuple() succeeds
taking False path
1291
1292 selection = (void **) newtCheckboxTreeGetSelection(s->co, &numselected);
1293
1294 sel = PyList_New(0);
1295
when PyList_New() succeeds
PyListObject allocated at: sel = PyList_New(0);
ob_refcnt is now refs: 1 + N where N >= 0
1296 if (!selection) {
1297 return sel;
when treating unknown const void * * from snackmodule.c:1293 as non-NULL
taking False path
1298 }
1299
1300 sel = PyList_New(0);
1301 for (i = 0; i < numselected; i++) {
when PyList_New() fails
1302 PyList_Append(sel, PyInt_FromLong((long) selection[i]));
when taking False path
1303 }
1304 free(selection);
1305
1306 return sel;
1307 }
1308