File: | radix_python.c |
Function: | radix_getstate |
Error: | ob_refcnt of new ref from call to Py_BuildValue is 2 too high |
524 static PyObject *
525 radix_getstate(RadixObject *self)
526 {
527 radix_node_t *node;
528 PyObject *ret;
529 RadixNodeObject *rnode;
530
531 if ((ret = PyList_New(0)) == NULL)
when PyList_New() succeeds
taking False path
532 return NULL;
533
534 RADIX_WALK(self->rt4->head, node) {
when treating unknown struct radix_tree_t * from radix_python.c:534 as non-NULL
when treating unknown struct radix_node_t * from radix_python.c:534 as non-NULL
taking True path
when treating unknown struct prefix_t * from radix_python.c:534 as non-NULL
taking True path
when treating unknown struct _radix_node_t * from radix_python.c:542 as NULL
taking False path
535 if (node->data != NULL) {
when treating unknown void * from radix_python.c:535 as non-NULL
taking True path
536 rnode = (RadixNodeObject *)node->data;
537 PyList_Append(ret, Py_BuildValue("(OO)",
when treating unknown void * from radix_python.c:536 as non-NULL
when Py_BuildValue() succeeds
when PyList_Append() succeeds
new ref from call to Py_BuildValue allocated at: PyList_Append(ret, Py_BuildValue("(OO)",
ob_refcnt is now refs: 1 + N where N >= 0
ob_refcnt is now refs: 2 + N where N >= 0
new ref from call to Py_BuildValue is now referenced by 1 non-stack value(s): PyListObject.ob_item[0]
538 rnode->prefix, rnode->user_attr));
539 Py_INCREF(rnode->prefix);
when treating unknown struct PyObject * from radix_python.c:539 as non-NULL
540 Py_INCREF(rnode->user_attr);
when treating unknown struct PyObject * from radix_python.c:540 as non-NULL
541 }
542 } RADIX_WALK_END;
when treating unknown struct _radix_node_t * from radix_python.c:542 as non-NULL
taking True path
when treating unknown struct _radix_node_t * from radix_python.c:542 as non-NULL
taking True path
543 RADIX_WALK(self->rt6->head, node) {
when treating unknown struct radix_tree_t * from radix_python.c:543 as non-NULL
when treating unknown struct radix_node_t * from radix_python.c:543 as non-NULL
taking True path
when treating unknown struct prefix_t * from radix_python.c:543 as non-NULL
taking True path
when treating unknown struct _radix_node_t * from radix_python.c:551 as NULL
taking False path
544 if (node->data != NULL) {
when treating unknown void * from radix_python.c:544 as non-NULL
taking True path
545 rnode = (RadixNodeObject *)node->data;
546 PyList_Append(ret, Py_BuildValue("(OO)",
when treating unknown void * from radix_python.c:545 as non-NULL
when Py_BuildValue() succeeds
when PyList_Append() succeeds
new ref from call to Py_BuildValue is now referenced by 0 non-stack value(s):
547 rnode->prefix, rnode->user_attr));
548 Py_INCREF(rnode->prefix);
when treating unknown struct PyObject * from radix_python.c:548 as non-NULL
549 Py_INCREF(rnode->user_attr);
when treating unknown struct PyObject * from radix_python.c:549 as non-NULL
550 }
551 } RADIX_WALK_END;
when treating unknown struct _radix_node_t * from radix_python.c:551 as non-NULL
taking True path
when treating unknown struct _radix_node_t * from radix_python.c:551 as non-NULL
taking True path
552
553 return (ret);
554 }
ob_refcnt of new ref from call to Py_BuildValue is 2 too high
was expecting final ob_refcnt to be N + 0 (for some unknown N)
but final ob_refcnt is N + 2
found 3 similar trace(s) to this
File: | radix_python.c |
Function: | radix_getstate |
Error: | ob_refcnt of new ref from call to Py_BuildValue is 1 too high |
524 static PyObject *
525 radix_getstate(RadixObject *self)
526 {
527 radix_node_t *node;
528 PyObject *ret;
529 RadixNodeObject *rnode;
530
531 if ((ret = PyList_New(0)) == NULL)
when PyList_New() succeeds
taking False path
532 return NULL;
533
534 RADIX_WALK(self->rt4->head, node) {
when treating unknown struct radix_tree_t * from radix_python.c:534 as non-NULL
when treating unknown struct radix_node_t * from radix_python.c:534 as non-NULL
taking True path
when treating unknown struct prefix_t * from radix_python.c:534 as non-NULL
taking True path
when treating unknown struct _radix_node_t * from radix_python.c:542 as NULL
taking False path
535 if (node->data != NULL) {
when treating unknown void * from radix_python.c:535 as non-NULL
taking True path
536 rnode = (RadixNodeObject *)node->data;
537 PyList_Append(ret, Py_BuildValue("(OO)",
when treating unknown void * from radix_python.c:536 as non-NULL
when Py_BuildValue() succeeds
when PyList_Append() succeeds
538 rnode->prefix, rnode->user_attr));
539 Py_INCREF(rnode->prefix);
when treating unknown struct PyObject * from radix_python.c:539 as non-NULL
540 Py_INCREF(rnode->user_attr);
when treating unknown struct PyObject * from radix_python.c:540 as non-NULL
541 }
542 } RADIX_WALK_END;
when treating unknown struct _radix_node_t * from radix_python.c:542 as non-NULL
taking True path
when treating unknown struct _radix_node_t * from radix_python.c:542 as non-NULL
taking True path
543 RADIX_WALK(self->rt6->head, node) {
when treating unknown struct radix_tree_t * from radix_python.c:543 as non-NULL
when treating unknown struct radix_node_t * from radix_python.c:543 as non-NULL
taking True path
when treating unknown struct prefix_t * from radix_python.c:543 as non-NULL
taking True path
when treating unknown struct _radix_node_t * from radix_python.c:551 as NULL
taking False path
544 if (node->data != NULL) {
when treating unknown void * from radix_python.c:544 as non-NULL
taking True path
545 rnode = (RadixNodeObject *)node->data;
546 PyList_Append(ret, Py_BuildValue("(OO)",
when treating unknown void * from radix_python.c:545 as non-NULL
when Py_BuildValue() succeeds
when PyList_Append() succeeds
new ref from call to Py_BuildValue allocated at: PyList_Append(ret, Py_BuildValue("(OO)",
ob_refcnt is now refs: 1 + N where N >= 0
ob_refcnt is now refs: 2 + N where N >= 0
new ref from call to Py_BuildValue is now referenced by 1 non-stack value(s): PyListObject.ob_item[0]
547 rnode->prefix, rnode->user_attr));
548 Py_INCREF(rnode->prefix);
when treating unknown struct PyObject * from radix_python.c:548 as non-NULL
549 Py_INCREF(rnode->user_attr);
when treating unknown struct PyObject * from radix_python.c:549 as non-NULL
550 }
551 } RADIX_WALK_END;
when treating unknown struct _radix_node_t * from radix_python.c:551 as non-NULL
taking True path
when treating unknown struct _radix_node_t * from radix_python.c:551 as non-NULL
taking True path
552
553 return (ret);
554 }
ob_refcnt of new ref from call to Py_BuildValue is 1 too high
was expecting final ob_refcnt to be N + 1 (for some unknown N)
due to object being referenced by: PyListObject.ob_item[0]
but final ob_refcnt is N + 2
found 15 similar trace(s) to this