Mock Version: 1.1.14 Mock Version: 1.1.14 Mock Version: 1.1.14 Mock Version: 1.1.14 Mock Version: 1.1.14 Mock Version: 1.1.14 Mock Version: 1.1.14 Mock Version: 1.1.14 Mock Version: 1.1.14 Mock Version: 1.1.14 Mock Version: 1.1.14 Mock Version: 1.1.14 Mock Version: 1.1.14 Mock Version: 1.1.14 Mock Version: 1.1.14 Mock Version: 1.1.14 Mock Version: 1.1.14 Mock Version: 1.1.14 Mock Version: 1.1.14 Mock Version: 1.1.14 Mock Version: 1.1.14 Mock Version: 1.1.14 Mock Version: 1.1.14 Mock Version: 1.1.14 ENTER do(['bash', '--login', '-c', 'rpmbuild -bs --target x86_64 --nodeps builddir/build/SPECS/python-meld3.spec'], False, '/var/lib/mock/fedora-16-x86_64/root/', None, 0, True, False, 500, 475, None, logger=) Executing command: ['bash', '--login', '-c', 'rpmbuild -bs --target x86_64 --nodeps builddir/build/SPECS/python-meld3.spec'] Building target platforms: x86_64 Building for target x86_64 Wrote: /builddir/build/SRPMS/python-meld3-0.6.7-5.fc16.src.rpm Child returncode was: 0 LEAVE do --> ENTER do(['bash', '--login', '-c', 'rpmbuild -bb --target x86_64 --nodeps builddir/build/SPECS/python-meld3.spec'], False, '/var/lib/mock/fedora-16-x86_64/root/', None, 0, True, False, 500, 475, None, logger=) Executing command: ['bash', '--login', '-c', 'rpmbuild -bb --target x86_64 --nodeps builddir/build/SPECS/python-meld3.spec'] Building target platforms: x86_64 Building for target x86_64 Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.JPEJiv + umask 022 + cd /builddir/build/BUILD + LANG=C + export LANG + unset DISPLAY + cd /builddir/build/BUILD + rm -rf meld3-0.6.7 + /usr/bin/gzip -dc /builddir/build/SOURCES/meld3-0.6.7.tar.gz + /bin/tar -xf - + STATUS=0 + '[' 0 -ne 0 ']' + cd meld3-0.6.7 + /bin/chmod -Rf a+rX,u+w,g-w,o-w . + echo 'Patch #0 (python-meld3-0.6.7-missing-src-file.patch):' Patch #0 (python-meld3-0.6.7-missing-src-file.patch): + /bin/cat /builddir/build/SOURCES/python-meld3-0.6.7-missing-src-file.patch + /usr/bin/patch -s -p1 -b --suffix .missing-src-file --fuzz=0 + exit 0 Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.po1jer + umask 022 + cd /builddir/build/BUILD + cd meld3-0.6.7 + LANG=C + export LANG + unset DISPLAY + export USE_MELD3_EXTENSION_MODULES=True + USE_MELD3_EXTENSION_MODULES=True + CFLAGS='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic' + /usr/bin/python setup.py build running build running build_py creating build creating build/lib.linux-x86_64-2.7 creating build/lib.linux-x86_64-2.7/meld3 copying meld3/__init__.py -> build/lib.linux-x86_64-2.7/meld3 copying meld3/example.py -> build/lib.linux-x86_64-2.7/meld3 copying meld3/test_meld3.py -> build/lib.linux-x86_64-2.7/meld3 copying meld3/meldprofile.py -> build/lib.linux-x86_64-2.7/meld3 copying meld3/clearsilverprofile.py -> build/lib.linux-x86_64-2.7/meld3 copying meld3/meld3.py -> build/lib.linux-x86_64-2.7/meld3 copying meld3/melddiff.py -> build/lib.linux-x86_64-2.7/meld3 copying meld3/test_getiterator.py -> build/lib.linux-x86_64-2.7/meld3 copying meld3/testclone.py -> build/lib.linux-x86_64-2.7/meld3 copying meld3/zptprofile.py -> build/lib.linux-x86_64-2.7/meld3 running build_ext building 'meld3/cmeld3' extension creating build/temp.linux-x86_64-2.7 creating build/temp.linux-x86_64-2.7/meld3 gcc -pthread -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -fPIC -I/usr/include/python2.7 -c meld3/cmeld3.c -o build/temp.linux-x86_64-2.7/meld3/cmeld3.o meld3/cmeld3.c: In function 'contenthandler': meld3/cmeld3.c:314:48: note: this function is too complicated for the reference-count checker to fully analyze: not all paths were analyzed meld3/cmeld3.c:355:1: warning: ob_refcnt of heap-region-6 is 1 too low [enabled by default] meld3/cmeld3.c:355:1: note: was expecting final ob_refcnt to be N + 1 (for some unknown N) meld3/cmeld3.c:355:1: note: due to object being referenced by: emptyattrs meld3/cmeld3.c:355:1: note: but final ob_refcnt is N + 0 meld3/cmeld3.c:317:26: note: when PyArg_ParseTuple() succeeds at: if (!PyArg_ParseTuple(args, "OOO:content", &node, &text, &structure)) { meld3/cmeld3.c:317:8: note: taking False path at: if (!PyArg_ParseTuple(args, "OOO:content", &node, &text, &structure)) { meld3/cmeld3.c:320:15: note: reaching: PyObject *replacel = NULL; meld3/cmeld3.c:327:8: note: when treating unknown struct PyObject * from meld3/cmeld3.c:6 as non-NULL at: if (!(klass = PyObject_GetAttr(node, PySTR__class__))) return NULL; meld3/cmeld3.c:327:8: note: when PyObject_GetAttr() succeeds at: if (!(klass = PyObject_GetAttr(node, PySTR__class__))) return NULL; meld3/cmeld3.c:327:8: note: taking False path at: if (!(klass = PyObject_GetAttr(node, PySTR__class__))) return NULL; meld3/cmeld3.c:328:38: note: reaching: if (!(replacel = PyObject_GetAttr(node, PySTRReplace))) return NULL; meld3/cmeld3.c:328:8: note: when treating unknown struct PyObject * from meld3/cmeld3.c:9 as non-NULL at: if (!(replacel = PyObject_GetAttr(node, PySTRReplace))) return NULL; meld3/cmeld3.c:328:8: note: when PyObject_GetAttr() succeeds at: if (!(replacel = PyObject_GetAttr(node, PySTRReplace))) return NULL; meld3/cmeld3.c:328:8: note: taking False path at: if (!(replacel = PyObject_GetAttr(node, PySTRReplace))) return NULL; meld3/cmeld3.c:329:8: note: reaching: if (!(replace = PyList_GetItem(replacel, 0))) return NULL; meld3/cmeld3.c:329:8: note: taking False path at: if (!(replace = PyList_GetItem(replacel, 0))) return NULL; meld3/cmeld3.c:330:5: note: reaching: Py_DECREF(replacel); meld3/cmeld3.c:330:5: note: when taking True path at: Py_DECREF(replacel); meld3/cmeld3.c:332:21: note: reaching: PyObject_SetAttr(node, PySTRtext, Py_None); meld3/cmeld3.c:332:21: note: when treating unknown struct PyObject * from meld3/cmeld3.c:8 as non-NULL at: PyObject_SetAttr(node, PySTRtext, Py_None); meld3/cmeld3.c:332:21: note: when PyObject_SetAttr() succeeds at: PyObject_SetAttr(node, PySTRtext, Py_None); meld3/cmeld3.c:334:8: note: when PyDict_New() succeeds at: if (!(newdict = PyDict_New())) return NULL; meld3/cmeld3.c:334:8: note: taking False path at: if (!(newdict = PyDict_New())) return NULL; meld3/cmeld3.c:336:23: note: reaching: if (PyDict_SetItem(newdict, PySTRparent, node) == -1) return NULL; meld3/cmeld3.c:336:23: note: when treating unknown struct PyObject * from meld3/cmeld3.c:7 as non-NULL at: if (PyDict_SetItem(newdict, PySTRparent, node) == -1) return NULL; meld3/cmeld3.c:336:23: note: when PyDict_SetItem() succeeds at: if (PyDict_SetItem(newdict, PySTRparent, node) == -1) return NULL; meld3/cmeld3.c:336:8: note: taking False path at: if (PyDict_SetItem(newdict, PySTRparent, node) == -1) return NULL; meld3/cmeld3.c:337:23: note: reaching: if (PyDict_SetItem(newdict, PySTRattrib, emptyattrs) == -1) return NULL; meld3/cmeld3.c:337:23: note: when treating unknown struct PyObject * from meld3/cmeld3.c:7 as non-NULL at: if (PyDict_SetItem(newdict, PySTRattrib, emptyattrs) == -1) return NULL; meld3/cmeld3.c:337:23: note: when treating unknown struct PyObject * from meld3/cmeld3.c:11 as non-NULL at: if (PyDict_SetItem(newdict, PySTRattrib, emptyattrs) == -1) return NULL; meld3/cmeld3.c:337:23: note: heap-region-6 is now referenced by 1 non-stack value(s): emptyattrs meld3/cmeld3.c:337:23: note: when PyDict_SetItem() succeeds at: if (PyDict_SetItem(newdict, PySTRattrib, emptyattrs) == -1) return NULL; meld3/cmeld3.c:337:23: note: ob_refcnt is now refs: 0 + N where N >= 2 meld3/cmeld3.c:337:8: note: taking False path at: if (PyDict_SetItem(newdict, PySTRattrib, emptyattrs) == -1) return NULL; meld3/cmeld3.c:338:23: note: reaching: if (PyDict_SetItem(newdict, PySTRtext, text) == -1) return NULL; meld3/cmeld3.c:338:23: note: when PyDict_SetItem() succeeds at: if (PyDict_SetItem(newdict, PySTRtext, text) == -1) return NULL; meld3/cmeld3.c:338:8: note: taking False path at: if (PyDict_SetItem(newdict, PySTRtext, text) == -1) return NULL; meld3/cmeld3.c:339:23: note: reaching: if (PyDict_SetItem(newdict, PySTRstructure, structure) == -1) return NULL; meld3/cmeld3.c:339:23: note: when treating unknown struct PyObject * from meld3/cmeld3.c:8 as non-NULL at: if (PyDict_SetItem(newdict, PySTRstructure, structure) == -1) return NULL; meld3/cmeld3.c:339:23: note: when PyDict_SetItem() succeeds at: if (PyDict_SetItem(newdict, PySTRstructure, structure) == -1) return NULL; meld3/cmeld3.c:339:8: note: taking False path at: if (PyDict_SetItem(newdict, PySTRstructure, structure) == -1) return NULL; meld3/cmeld3.c:340:23: note: reaching: if (PyDict_SetItem(newdict, PySTRtag, replace) == -1) return NULL; meld3/cmeld3.c:340:23: note: when treating unknown struct PyObject * from meld3/cmeld3.c:8 as non-NULL at: if (PyDict_SetItem(newdict, PySTRtag, replace) == -1) return NULL; meld3/cmeld3.c:340:23: note: when PyDict_SetItem() succeeds at: if (PyDict_SetItem(newdict, PySTRtag, replace) == -1) return NULL; meld3/cmeld3.c:340:8: note: taking False path at: if (PyDict_SetItem(newdict, PySTRtag, replace) == -1) return NULL; meld3/cmeld3.c:341:23: note: reaching: if (PyDict_SetItem(newdict, PySTR_children, emptychildren) == -1) { meld3/cmeld3.c:341:23: note: when treating unknown struct PyObject * from meld3/cmeld3.c:6 as non-NULL at: if (PyDict_SetItem(newdict, PySTR_children, emptychildren) == -1) { meld3/cmeld3.c:341:23: note: when treating unknown struct PyObject * from meld3/cmeld3.c:11 as non-NULL at: if (PyDict_SetItem(newdict, PySTR_children, emptychildren) == -1) { meld3/cmeld3.c:341:23: note: when PyDict_SetItem() succeeds at: if (PyDict_SetItem(newdict, PySTR_children, emptychildren) == -1) { meld3/cmeld3.c:341:8: note: taking False path at: if (PyDict_SetItem(newdict, PySTR_children, emptychildren) == -1) { meld3/cmeld3.c:344:8: note: reaching: if (!(replacenode = PyInstance_NewRaw(klass, newdict))) return NULL; meld3/cmeld3.c:344:8: note: when PyInstance_NewRaw() succeeds at: if (!(replacenode = PyInstance_NewRaw(klass, newdict))) return NULL; meld3/cmeld3.c:344:8: note: taking False path at: if (!(replacenode = PyInstance_NewRaw(klass, newdict))) return NULL; meld3/cmeld3.c:345:5: note: reaching: Py_DECREF(klass); meld3/cmeld3.c:345:5: note: when taking False path at: Py_DECREF(klass); meld3/cmeld3.c:345:5: note: reaching: Py_DECREF(klass); meld3/cmeld3.c:345:5: note: calling tp_dealloc on new ref from call to PyObject_GetAttr allocated at meld3/cmeld3.c:327 at: Py_DECREF(klass); meld3/cmeld3.c:346:5: note: reaching: Py_DECREF(newdict); meld3/cmeld3.c:346:5: note: when taking True path at: Py_DECREF(newdict); meld3/cmeld3.c:348:8: note: reaching: if (!(newchildren = PyList_New(1))) return NULL; meld3/cmeld3.c:348:8: note: when PyList_New() succeeds at: if (!(newchildren = PyList_New(1))) return NULL; meld3/cmeld3.c:348:8: note: taking False path at: if (!(newchildren = PyList_New(1))) return NULL; meld3/cmeld3.c:349:5: note: reaching: PyList_SET_ITEM(newchildren, 0, replacenode); // steals a reference to rn meld3/cmeld3.c:350:21: note: when PyObject_SetAttr() succeeds at: PyObject_SetAttr(node, PySTR_children, newchildren); meld3/cmeld3.c:351:5: note: when taking True path at: Py_DECREF(newchildren); meld3/cmeld3.c:352:5: note: reaching: Py_INCREF(Py_None); meld3/cmeld3.c:355:1: note: returning meld3/cmeld3.c:355:1: note: found 14 similar trace(s) to this meld3/cmeld3.c:355:1: warning: ob_refcnt of heap-region-10 is 1 too low [enabled by default] meld3/cmeld3.c:355:1: note: was expecting final ob_refcnt to be N + 1 (for some unknown N) meld3/cmeld3.c:355:1: note: due to object being referenced by: emptychildren meld3/cmeld3.c:355:1: note: but final ob_refcnt is N + 0 meld3/cmeld3.c:317:26: note: when PyArg_ParseTuple() succeeds at: if (!PyArg_ParseTuple(args, "OOO:content", &node, &text, &structure)) { meld3/cmeld3.c:317:8: note: taking False path at: if (!PyArg_ParseTuple(args, "OOO:content", &node, &text, &structure)) { meld3/cmeld3.c:320:15: note: reaching: PyObject *replacel = NULL; meld3/cmeld3.c:327:8: note: when treating unknown struct PyObject * from meld3/cmeld3.c:6 as non-NULL at: if (!(klass = PyObject_GetAttr(node, PySTR__class__))) return NULL; meld3/cmeld3.c:327:8: note: when PyObject_GetAttr() succeeds at: if (!(klass = PyObject_GetAttr(node, PySTR__class__))) return NULL; meld3/cmeld3.c:327:8: note: taking False path at: if (!(klass = PyObject_GetAttr(node, PySTR__class__))) return NULL; meld3/cmeld3.c:328:38: note: reaching: if (!(replacel = PyObject_GetAttr(node, PySTRReplace))) return NULL; meld3/cmeld3.c:328:8: note: when treating unknown struct PyObject * from meld3/cmeld3.c:9 as non-NULL at: if (!(replacel = PyObject_GetAttr(node, PySTRReplace))) return NULL; meld3/cmeld3.c:328:8: note: when PyObject_GetAttr() succeeds at: if (!(replacel = PyObject_GetAttr(node, PySTRReplace))) return NULL; meld3/cmeld3.c:328:8: note: taking False path at: if (!(replacel = PyObject_GetAttr(node, PySTRReplace))) return NULL; meld3/cmeld3.c:329:8: note: reaching: if (!(replace = PyList_GetItem(replacel, 0))) return NULL; meld3/cmeld3.c:329:8: note: taking False path at: if (!(replace = PyList_GetItem(replacel, 0))) return NULL; meld3/cmeld3.c:330:5: note: reaching: Py_DECREF(replacel); meld3/cmeld3.c:330:5: note: when taking True path at: Py_DECREF(replacel); meld3/cmeld3.c:332:21: note: reaching: PyObject_SetAttr(node, PySTRtext, Py_None); meld3/cmeld3.c:332:21: note: when treating unknown struct PyObject * from meld3/cmeld3.c:8 as non-NULL at: PyObject_SetAttr(node, PySTRtext, Py_None); meld3/cmeld3.c:332:21: note: when PyObject_SetAttr() succeeds at: PyObject_SetAttr(node, PySTRtext, Py_None); meld3/cmeld3.c:334:8: note: when PyDict_New() succeeds at: if (!(newdict = PyDict_New())) return NULL; meld3/cmeld3.c:334:8: note: taking False path at: if (!(newdict = PyDict_New())) return NULL; meld3/cmeld3.c:336:23: note: reaching: if (PyDict_SetItem(newdict, PySTRparent, node) == -1) return NULL; meld3/cmeld3.c:336:23: note: when treating unknown struct PyObject * from meld3/cmeld3.c:7 as non-NULL at: if (PyDict_SetItem(newdict, PySTRparent, node) == -1) return NULL; meld3/cmeld3.c:336:23: note: when PyDict_SetItem() succeeds at: if (PyDict_SetItem(newdict, PySTRparent, node) == -1) return NULL; meld3/cmeld3.c:336:8: note: taking False path at: if (PyDict_SetItem(newdict, PySTRparent, node) == -1) return NULL; meld3/cmeld3.c:337:23: note: reaching: if (PyDict_SetItem(newdict, PySTRattrib, emptyattrs) == -1) return NULL; meld3/cmeld3.c:337:23: note: when treating unknown struct PyObject * from meld3/cmeld3.c:7 as non-NULL at: if (PyDict_SetItem(newdict, PySTRattrib, emptyattrs) == -1) return NULL; meld3/cmeld3.c:337:23: note: when treating unknown struct PyObject * from meld3/cmeld3.c:11 as non-NULL at: if (PyDict_SetItem(newdict, PySTRattrib, emptyattrs) == -1) return NULL; meld3/cmeld3.c:337:23: note: when PyDict_SetItem() succeeds at: if (PyDict_SetItem(newdict, PySTRattrib, emptyattrs) == -1) return NULL; meld3/cmeld3.c:337:8: note: taking False path at: if (PyDict_SetItem(newdict, PySTRattrib, emptyattrs) == -1) return NULL; meld3/cmeld3.c:338:23: note: reaching: if (PyDict_SetItem(newdict, PySTRtext, text) == -1) return NULL; meld3/cmeld3.c:338:23: note: when PyDict_SetItem() succeeds at: if (PyDict_SetItem(newdict, PySTRtext, text) == -1) return NULL; meld3/cmeld3.c:338:8: note: taking False path at: if (PyDict_SetItem(newdict, PySTRtext, text) == -1) return NULL; meld3/cmeld3.c:339:23: note: reaching: if (PyDict_SetItem(newdict, PySTRstructure, structure) == -1) return NULL; meld3/cmeld3.c:339:23: note: when treating unknown struct PyObject * from meld3/cmeld3.c:8 as non-NULL at: if (PyDict_SetItem(newdict, PySTRstructure, structure) == -1) return NULL; meld3/cmeld3.c:339:23: note: when PyDict_SetItem() succeeds at: if (PyDict_SetItem(newdict, PySTRstructure, structure) == -1) return NULL; meld3/cmeld3.c:339:8: note: taking False path at: if (PyDict_SetItem(newdict, PySTRstructure, structure) == -1) return NULL; meld3/cmeld3.c:340:23: note: reaching: if (PyDict_SetItem(newdict, PySTRtag, replace) == -1) return NULL; meld3/cmeld3.c:340:23: note: when treating unknown struct PyObject * from meld3/cmeld3.c:8 as non-NULL at: if (PyDict_SetItem(newdict, PySTRtag, replace) == -1) return NULL; meld3/cmeld3.c:340:23: note: when PyDict_SetItem() succeeds at: if (PyDict_SetItem(newdict, PySTRtag, replace) == -1) return NULL; meld3/cmeld3.c:340:8: note: taking False path at: if (PyDict_SetItem(newdict, PySTRtag, replace) == -1) return NULL; meld3/cmeld3.c:341:23: note: reaching: if (PyDict_SetItem(newdict, PySTR_children, emptychildren) == -1) { meld3/cmeld3.c:341:23: note: when treating unknown struct PyObject * from meld3/cmeld3.c:6 as non-NULL at: if (PyDict_SetItem(newdict, PySTR_children, emptychildren) == -1) { meld3/cmeld3.c:341:23: note: when treating unknown struct PyObject * from meld3/cmeld3.c:11 as non-NULL at: if (PyDict_SetItem(newdict, PySTR_children, emptychildren) == -1) { meld3/cmeld3.c:341:23: note: heap-region-10 is now referenced by 1 non-stack value(s): emptychildren meld3/cmeld3.c:341:23: note: when PyDict_SetItem() succeeds at: if (PyDict_SetItem(newdict, PySTR_children, emptychildren) == -1) { meld3/cmeld3.c:341:23: note: ob_refcnt is now refs: 0 + N where N >= 2 meld3/cmeld3.c:341:8: note: taking False path at: if (PyDict_SetItem(newdict, PySTR_children, emptychildren) == -1) { meld3/cmeld3.c:344:8: note: reaching: if (!(replacenode = PyInstance_NewRaw(klass, newdict))) return NULL; meld3/cmeld3.c:344:8: note: when PyInstance_NewRaw() succeeds at: if (!(replacenode = PyInstance_NewRaw(klass, newdict))) return NULL; meld3/cmeld3.c:344:8: note: taking False path at: if (!(replacenode = PyInstance_NewRaw(klass, newdict))) return NULL; meld3/cmeld3.c:345:5: note: reaching: Py_DECREF(klass); meld3/cmeld3.c:345:5: note: when taking False path at: Py_DECREF(klass); meld3/cmeld3.c:345:5: note: reaching: Py_DECREF(klass); meld3/cmeld3.c:345:5: note: calling tp_dealloc on new ref from call to PyObject_GetAttr allocated at meld3/cmeld3.c:327 at: Py_DECREF(klass); meld3/cmeld3.c:346:5: note: reaching: Py_DECREF(newdict); meld3/cmeld3.c:346:5: note: when taking True path at: Py_DECREF(newdict); meld3/cmeld3.c:348:8: note: reaching: if (!(newchildren = PyList_New(1))) return NULL; meld3/cmeld3.c:348:8: note: when PyList_New() succeeds at: if (!(newchildren = PyList_New(1))) return NULL; meld3/cmeld3.c:348:8: note: taking False path at: if (!(newchildren = PyList_New(1))) return NULL; meld3/cmeld3.c:349:5: note: reaching: PyList_SET_ITEM(newchildren, 0, replacenode); // steals a reference to rn meld3/cmeld3.c:350:21: note: when PyObject_SetAttr() succeeds at: PyObject_SetAttr(node, PySTR_children, newchildren); meld3/cmeld3.c:351:5: note: when taking True path at: Py_DECREF(newchildren); meld3/cmeld3.c:352:5: note: reaching: Py_INCREF(Py_None); meld3/cmeld3.c:355:1: note: returning meld3/cmeld3.c:355:1: note: found 14 similar trace(s) to this meld3/cmeld3.c:355:1: warning: ob_refcnt of '*replacenode' is 1 too high [enabled by default] meld3/cmeld3.c:355:1: note: was expecting final ob_refcnt to be N + 0 (for some unknown N) meld3/cmeld3.c:355:1: note: but final ob_refcnt is N + 1 meld3/cmeld3.c:344:8: note: new ref from (unknown) PyInstance_NewRaw allocated at: if (!(replacenode = PyInstance_NewRaw(klass, newdict))) return NULL; meld3/cmeld3.c:317:26: note: when PyArg_ParseTuple() succeeds at: if (!PyArg_ParseTuple(args, "OOO:content", &node, &text, &structure)) { meld3/cmeld3.c:317:8: note: taking False path at: if (!PyArg_ParseTuple(args, "OOO:content", &node, &text, &structure)) { meld3/cmeld3.c:320:15: note: reaching: PyObject *replacel = NULL; meld3/cmeld3.c:327:8: note: when treating unknown struct PyObject * from meld3/cmeld3.c:6 as non-NULL at: if (!(klass = PyObject_GetAttr(node, PySTR__class__))) return NULL; meld3/cmeld3.c:327:8: note: when PyObject_GetAttr() succeeds at: if (!(klass = PyObject_GetAttr(node, PySTR__class__))) return NULL; meld3/cmeld3.c:327:8: note: taking False path at: if (!(klass = PyObject_GetAttr(node, PySTR__class__))) return NULL; meld3/cmeld3.c:328:38: note: reaching: if (!(replacel = PyObject_GetAttr(node, PySTRReplace))) return NULL; meld3/cmeld3.c:328:8: note: when treating unknown struct PyObject * from meld3/cmeld3.c:9 as non-NULL at: if (!(replacel = PyObject_GetAttr(node, PySTRReplace))) return NULL; meld3/cmeld3.c:328:8: note: when PyObject_GetAttr() succeeds at: if (!(replacel = PyObject_GetAttr(node, PySTRReplace))) return NULL; meld3/cmeld3.c:328:8: note: taking False path at: if (!(replacel = PyObject_GetAttr(node, PySTRReplace))) return NULL; meld3/cmeld3.c:329:8: note: reaching: if (!(replace = PyList_GetItem(replacel, 0))) return NULL; meld3/cmeld3.c:329:8: note: taking False path at: if (!(replace = PyList_GetItem(replacel, 0))) return NULL; meld3/cmeld3.c:330:5: note: reaching: Py_DECREF(replacel); meld3/cmeld3.c:330:5: note: when taking True path at: Py_DECREF(replacel); meld3/cmeld3.c:332:21: note: reaching: PyObject_SetAttr(node, PySTRtext, Py_None); meld3/cmeld3.c:332:21: note: when treating unknown struct PyObject * from meld3/cmeld3.c:8 as non-NULL at: PyObject_SetAttr(node, PySTRtext, Py_None); meld3/cmeld3.c:332:21: note: when PyObject_SetAttr() succeeds at: PyObject_SetAttr(node, PySTRtext, Py_None); meld3/cmeld3.c:334:8: note: when PyDict_New() succeeds at: if (!(newdict = PyDict_New())) return NULL; meld3/cmeld3.c:334:8: note: taking False path at: if (!(newdict = PyDict_New())) return NULL; meld3/cmeld3.c:336:23: note: reaching: if (PyDict_SetItem(newdict, PySTRparent, node) == -1) return NULL; meld3/cmeld3.c:336:23: note: when treating unknown struct PyObject * from meld3/cmeld3.c:7 as non-NULL at: if (PyDict_SetItem(newdict, PySTRparent, node) == -1) return NULL; meld3/cmeld3.c:336:23: note: when PyDict_SetItem() succeeds at: if (PyDict_SetItem(newdict, PySTRparent, node) == -1) return NULL; meld3/cmeld3.c:336:8: note: taking False path at: if (PyDict_SetItem(newdict, PySTRparent, node) == -1) return NULL; meld3/cmeld3.c:337:23: note: reaching: if (PyDict_SetItem(newdict, PySTRattrib, emptyattrs) == -1) return NULL; meld3/cmeld3.c:337:23: note: when treating unknown struct PyObject * from meld3/cmeld3.c:7 as non-NULL at: if (PyDict_SetItem(newdict, PySTRattrib, emptyattrs) == -1) return NULL; meld3/cmeld3.c:337:23: note: when treating unknown struct PyObject * from meld3/cmeld3.c:11 as non-NULL at: if (PyDict_SetItem(newdict, PySTRattrib, emptyattrs) == -1) return NULL; meld3/cmeld3.c:337:23: note: when PyDict_SetItem() succeeds at: if (PyDict_SetItem(newdict, PySTRattrib, emptyattrs) == -1) return NULL; meld3/cmeld3.c:337:8: note: taking False path at: if (PyDict_SetItem(newdict, PySTRattrib, emptyattrs) == -1) return NULL; meld3/cmeld3.c:338:23: note: reaching: if (PyDict_SetItem(newdict, PySTRtext, text) == -1) return NULL; meld3/cmeld3.c:338:23: note: when PyDict_SetItem() succeeds at: if (PyDict_SetItem(newdict, PySTRtext, text) == -1) return NULL; meld3/cmeld3.c:338:8: note: taking False path at: if (PyDict_SetItem(newdict, PySTRtext, text) == -1) return NULL; meld3/cmeld3.c:339:23: note: reaching: if (PyDict_SetItem(newdict, PySTRstructure, structure) == -1) return NULL; meld3/cmeld3.c:339:23: note: when treating unknown struct PyObject * from meld3/cmeld3.c:8 as non-NULL at: if (PyDict_SetItem(newdict, PySTRstructure, structure) == -1) return NULL; meld3/cmeld3.c:339:23: note: when PyDict_SetItem() succeeds at: if (PyDict_SetItem(newdict, PySTRstructure, structure) == -1) return NULL; meld3/cmeld3.c:339:8: note: taking False path at: if (PyDict_SetItem(newdict, PySTRstructure, structure) == -1) return NULL; meld3/cmeld3.c:340:23: note: reaching: if (PyDict_SetItem(newdict, PySTRtag, replace) == -1) return NULL; meld3/cmeld3.c:340:23: note: when treating unknown struct PyObject * from meld3/cmeld3.c:8 as non-NULL at: if (PyDict_SetItem(newdict, PySTRtag, replace) == -1) return NULL; meld3/cmeld3.c:340:23: note: when PyDict_SetItem() succeeds at: if (PyDict_SetItem(newdict, PySTRtag, replace) == -1) return NULL; meld3/cmeld3.c:340:8: note: taking False path at: if (PyDict_SetItem(newdict, PySTRtag, replace) == -1) return NULL; meld3/cmeld3.c:341:23: note: reaching: if (PyDict_SetItem(newdict, PySTR_children, emptychildren) == -1) { meld3/cmeld3.c:341:23: note: when treating unknown struct PyObject * from meld3/cmeld3.c:6 as non-NULL at: if (PyDict_SetItem(newdict, PySTR_children, emptychildren) == -1) { meld3/cmeld3.c:341:23: note: when treating unknown struct PyObject * from meld3/cmeld3.c:11 as non-NULL at: if (PyDict_SetItem(newdict, PySTR_children, emptychildren) == -1) { meld3/cmeld3.c:341:23: note: when PyDict_SetItem() succeeds at: if (PyDict_SetItem(newdict, PySTR_children, emptychildren) == -1) { meld3/cmeld3.c:341:8: note: taking False path at: if (PyDict_SetItem(newdict, PySTR_children, emptychildren) == -1) { meld3/cmeld3.c:344:8: note: reaching: if (!(replacenode = PyInstance_NewRaw(klass, newdict))) return NULL; meld3/cmeld3.c:344:8: note: when PyInstance_NewRaw() succeeds at: if (!(replacenode = PyInstance_NewRaw(klass, newdict))) return NULL; meld3/cmeld3.c:344:8: note: ob_refcnt is now refs: 1 + N where N >= 0 meld3/cmeld3.c:344:8: note: taking False path at: if (!(replacenode = PyInstance_NewRaw(klass, newdict))) return NULL; meld3/cmeld3.c:345:5: note: reaching: Py_DECREF(klass); meld3/cmeld3.c:345:5: note: when taking False path at: Py_DECREF(klass); meld3/cmeld3.c:345:5: note: reaching: Py_DECREF(klass); meld3/cmeld3.c:345:5: note: calling tp_dealloc on new ref from call to PyObject_GetAttr allocated at meld3/cmeld3.c:327 at: Py_DECREF(klass); meld3/cmeld3.c:346:5: note: reaching: Py_DECREF(newdict); meld3/cmeld3.c:346:5: note: when taking True path at: Py_DECREF(newdict); meld3/cmeld3.c:348:8: note: reaching: if (!(newchildren = PyList_New(1))) return NULL; meld3/cmeld3.c:348:8: note: when PyList_New() fails at: if (!(newchildren = PyList_New(1))) return NULL; meld3/cmeld3.c:348:8: note: taking True path at: if (!(newchildren = PyList_New(1))) return NULL; meld3/cmeld3.c:348:41: note: reaching: if (!(newchildren = PyList_New(1))) return NULL; meld3/cmeld3.c:355:1: note: returning meld3/cmeld3.c:355:1: note: found 2 similar trace(s) to this meld3/cmeld3.c:314:48: note: graphical error report for function 'contenthandler' written out to 'build/temp.linux-x86_64-2.7/meld3/cmeld3.c.contenthandler-refcount-errors.html' meld3/cmeld3.c: In function 'findmeld': meld3/cmeld3.c:260:42: note: this function is too complicated for the reference-count checker to fully analyze: not all paths were analyzed meld3/cmeld3.c:289:1: warning: ob_refcnt of return value is 1 too low [enabled by default] meld3/cmeld3.c:289:1: note: was expecting final ob_refcnt to be N + 1 (for some unknown N) meld3/cmeld3.c:289:1: note: due to object being referenced by: return value meld3/cmeld3.c:289:1: note: but final ob_refcnt is N + 0 meld3/cmeld3.c:262:8: note: when treating unknown struct PyObject * from meld3/cmeld3.c:7 as non-NULL at: if (!(attrib = PyObject_GetAttr(node, PySTRattrib))) return NULL; meld3/cmeld3.c:262:8: note: when PyObject_GetAttr() succeeds at: if (!(attrib = PyObject_GetAttr(node, PySTRattrib))) return NULL; meld3/cmeld3.c:262:8: note: taking False path at: if (!(attrib = PyObject_GetAttr(node, PySTRattrib))) return NULL; meld3/cmeld3.c:263:28: note: reaching: meldid = PyDict_GetItem(attrib, PySTR_MELD_ID); meld3/cmeld3.c:263:12: note: when treating unknown struct PyObject * from meld3/cmeld3.c:7 as non-NULL at: meldid = PyDict_GetItem(attrib, PySTR_MELD_ID); meld3/cmeld3.c:263:12: note: when PyDict_GetItem() succeeds at: meldid = PyDict_GetItem(attrib, PySTR_MELD_ID); meld3/cmeld3.c:264:5: note: when taking False path at: Py_DECREF(attrib); meld3/cmeld3.c:264:5: note: reaching: Py_DECREF(attrib); meld3/cmeld3.c:264:5: note: calling tp_dealloc on new ref from call to PyObject_GetAttr allocated at meld3/cmeld3.c:262 at: Py_DECREF(attrib); meld3/cmeld3.c:266:8: note: reaching: if (meldid != NULL) { meld3/cmeld3.c:266:8: note: taking True path at: if (meldid != NULL) { meld3/cmeld3.c:267:6: note: reaching: int compareresult = PyUnicode_Compare(meldid, name); meld3/cmeld3.c:268:5: note: when considering range: -0x80000000 <= value <= -1 at: if (compareresult == 0) { meld3/cmeld3.c:268:5: note: taking False path at: if (compareresult == 0) { meld3/cmeld3.c:275:12: note: reaching: result = Py_None; meld3/cmeld3.c:268:5: note: ob_refcnt is now refs: 0 + N where N >= 1 meld3/cmeld3.c:276:15: note: when treating unknown struct PyObject * from meld3/cmeld3.c:6 as non-NULL at: PyObject *children = PyObject_GetAttr(node, PySTR_children); meld3/cmeld3.c:276:15: note: when PyObject_GetAttr() succeeds at: PyObject *children = PyObject_GetAttr(node, PySTR_children); meld3/cmeld3.c:277:22: note: when PyList_Size() returns ob_size at: len = PyList_Size(children); meld3/cmeld3.c:278:5: note: when considering range: -0x80000000 <= len <= 0 at: for (i = 0; i < len; i++) { meld3/cmeld3.c:278:5: note: taking False path at: for (i = 0; i < len; i++) { meld3/cmeld3.c:285:5: note: reaching: Py_DECREF(children); meld3/cmeld3.c:285:5: note: when taking True path at: Py_DECREF(children); meld3/cmeld3.c:287:5: note: reaching: return result; meld3/cmeld3.c:289:1: note: returning meld3/cmeld3.c:289:1: note: consider using "Py_RETURN_NONE;" meld3/cmeld3.c:289:1: note: found 5 similar trace(s) to this meld3/cmeld3.c:277:22: warning: calling PyList_Size with NULL as argument 1 (children) at meld3/cmeld3.c:277 [enabled by default] meld3/cmeld3.c:262:8: note: when treating unknown struct PyObject * from meld3/cmeld3.c:7 as non-NULL at: if (!(attrib = PyObject_GetAttr(node, PySTRattrib))) return NULL; meld3/cmeld3.c:262:8: note: when PyObject_GetAttr() succeeds at: if (!(attrib = PyObject_GetAttr(node, PySTRattrib))) return NULL; meld3/cmeld3.c:262:8: note: taking False path at: if (!(attrib = PyObject_GetAttr(node, PySTRattrib))) return NULL; meld3/cmeld3.c:263:28: note: reaching: meldid = PyDict_GetItem(attrib, PySTR_MELD_ID); meld3/cmeld3.c:263:12: note: when treating unknown struct PyObject * from meld3/cmeld3.c:7 as non-NULL at: meldid = PyDict_GetItem(attrib, PySTR_MELD_ID); meld3/cmeld3.c:263:12: note: when PyDict_GetItem() succeeds at: meldid = PyDict_GetItem(attrib, PySTR_MELD_ID); meld3/cmeld3.c:264:5: note: when taking True path at: Py_DECREF(attrib); meld3/cmeld3.c:266:8: note: reaching: if (meldid != NULL) { meld3/cmeld3.c:266:8: note: taking True path at: if (meldid != NULL) { meld3/cmeld3.c:267:6: note: reaching: int compareresult = PyUnicode_Compare(meldid, name); meld3/cmeld3.c:268:5: note: when considering range: -0x80000000 <= value <= -1 at: if (compareresult == 0) { meld3/cmeld3.c:268:5: note: taking False path at: if (compareresult == 0) { meld3/cmeld3.c:275:12: note: reaching: result = Py_None; meld3/cmeld3.c:276:15: note: when treating unknown struct PyObject * from meld3/cmeld3.c:6 as non-NULL at: PyObject *children = PyObject_GetAttr(node, PySTR_children); meld3/cmeld3.c:276:15: note: when PyObject_GetAttr() fails at: PyObject *children = PyObject_GetAttr(node, PySTR_children); meld3/cmeld3.c:277:22: note: PyList_Size() invokes Py_TYPE() on the pointer via the PyList_Check() macro, thus accessing (NULL)->ob_type meld3/cmeld3.c:277:22: note: found 1 similar trace(s) to this meld3/cmeld3.c:260:42: note: graphical error report for function 'findmeld' written out to 'build/temp.linux-x86_64-2.7/meld3/cmeld3.c.findmeld-refcount-errors.html' meld3/cmeld3.c: In function 'getiteratorhandler': meld3/cmeld3.c:249:1: warning: ob_refcnt of '*list' is 1 too high [enabled by default] meld3/cmeld3.c:249:1: note: was expecting final ob_refcnt to be N + 0 (for some unknown N) meld3/cmeld3.c:249:1: note: but final ob_refcnt is N + 1 meld3/cmeld3.c:240:8: note: PyListObject allocated at: if (!(list = PyList_New(0))) { meld3/cmeld3.c:235:26: note: when PyArg_ParseTuple() succeeds at: if (!PyArg_ParseTuple(args, "O:getiterator", &node)) { meld3/cmeld3.c:235:8: note: taking False path at: if (!PyArg_ParseTuple(args, "O:getiterator", &node)) { meld3/cmeld3.c:240:8: note: reaching: if (!(list = PyList_New(0))) { meld3/cmeld3.c:240:8: note: when PyList_New() succeeds at: if (!(list = PyList_New(0))) { meld3/cmeld3.c:240:8: note: ob_refcnt is now refs: 1 + N where N >= 0 meld3/cmeld3.c:240:8: note: taking False path at: if (!(list = PyList_New(0))) { meld3/cmeld3.c:243:25: note: reaching: result = getiterator(node, list); meld3/cmeld3.c:243:12: note: when getiterator() succeeds at: result = getiterator(node, list); meld3/cmeld3.c:244:8: note: taking False path at: if (result == NULL) { meld3/cmeld3.c:248:5: note: reaching: return result; meld3/cmeld3.c:249:1: note: returning meld3/cmeld3.c:232:1: note: graphical error report for function 'getiteratorhandler' written out to 'build/temp.linux-x86_64-2.7/meld3/cmeld3.c.getiteratorhandler-refcount-errors.html' meld3/cmeld3.c: In function 'getiterator': meld3/cmeld3.c:228:1: warning: ob_refcnt of '*node' is 1 too high [enabled by default] meld3/cmeld3.c:228:1: note: was expecting final ob_refcnt to be N + 0 (for some unknown N) meld3/cmeld3.c:228:1: note: but final ob_refcnt is N + 1 meld3/cmeld3.c:203:22: note: when treating ob_size as 0 at: if (PyList_Append(list, node) == -1) { meld3/cmeld3.c:203:22: note: when PyList_Append() succeeds at: if (PyList_Append(list, node) == -1) { meld3/cmeld3.c:203:22: note: ob_refcnt is now refs: 1 + N where N >= 1 meld3/cmeld3.c:203:8: note: taking False path at: if (PyList_Append(list, node) == -1) { meld3/cmeld3.c:209:38: note: reaching: if (!(children = PyObject_GetAttr(node, PySTR_children))) { meld3/cmeld3.c:209:8: note: when treating unknown struct PyObject * from meld3/cmeld3.c:6 as non-NULL at: if (!(children = PyObject_GetAttr(node, PySTR_children))) { meld3/cmeld3.c:209:8: note: when PyObject_GetAttr() succeeds at: if (!(children = PyObject_GetAttr(node, PySTR_children))) { meld3/cmeld3.c:209:8: note: taking False path at: if (!(children = PyObject_GetAttr(node, PySTR_children))) { meld3/cmeld3.c:214:22: note: reaching: len = PyList_Size(children); meld3/cmeld3.c:214:22: note: when PyList_Size() returns ob_size at: len = PyList_Size(children); meld3/cmeld3.c:215:8: note: when considering range: -0x80000000 <= value <= -1 at: if (len < 0) { meld3/cmeld3.c:215:8: note: taking True path at: if (len < 0) { meld3/cmeld3.c:216:2: note: reaching: return NULL; meld3/cmeld3.c:228:1: note: returning meld3/cmeld3.c:228:1: note: found 7 similar trace(s) to this meld3/cmeld3.c:228:1: warning: ob_refcnt of '*children' is 1 too high [enabled by default] meld3/cmeld3.c:228:1: note: was expecting final ob_refcnt to be N + 0 (for some unknown N) meld3/cmeld3.c:228:1: note: but final ob_refcnt is N + 1 meld3/cmeld3.c:209:8: note: new ref from call to PyObject_GetAttr allocated at: if (!(children = PyObject_GetAttr(node, PySTR_children))) { meld3/cmeld3.c:203:22: note: when treating ob_size as 0 at: if (PyList_Append(list, node) == -1) { meld3/cmeld3.c:203:22: note: when PyList_Append() succeeds at: if (PyList_Append(list, node) == -1) { meld3/cmeld3.c:203:8: note: taking False path at: if (PyList_Append(list, node) == -1) { meld3/cmeld3.c:209:38: note: reaching: if (!(children = PyObject_GetAttr(node, PySTR_children))) { meld3/cmeld3.c:209:8: note: when treating unknown struct PyObject * from meld3/cmeld3.c:6 as non-NULL at: if (!(children = PyObject_GetAttr(node, PySTR_children))) { meld3/cmeld3.c:209:8: note: when PyObject_GetAttr() succeeds at: if (!(children = PyObject_GetAttr(node, PySTR_children))) { meld3/cmeld3.c:209:8: note: ob_refcnt is now refs: 1 + N where N >= 0 meld3/cmeld3.c:209:8: note: taking False path at: if (!(children = PyObject_GetAttr(node, PySTR_children))) { meld3/cmeld3.c:214:22: note: reaching: len = PyList_Size(children); meld3/cmeld3.c:214:22: note: when PyList_Size() returns ob_size at: len = PyList_Size(children); meld3/cmeld3.c:215:8: note: when considering range: -0x80000000 <= value <= -1 at: if (len < 0) { meld3/cmeld3.c:215:8: note: taking True path at: if (len < 0) { meld3/cmeld3.c:216:2: note: reaching: return NULL; meld3/cmeld3.c:228:1: note: returning meld3/cmeld3.c:228:1: warning: returning (PyObject*)NULL without setting an exception [enabled by default] meld3/cmeld3.c:203:22: note: when treating ob_size as 0 at: if (PyList_Append(list, node) == -1) { meld3/cmeld3.c:203:22: note: when PyList_Append() succeeds at: if (PyList_Append(list, node) == -1) { meld3/cmeld3.c:203:8: note: taking False path at: if (PyList_Append(list, node) == -1) { meld3/cmeld3.c:209:38: note: reaching: if (!(children = PyObject_GetAttr(node, PySTR_children))) { meld3/cmeld3.c:209:8: note: when treating unknown struct PyObject * from meld3/cmeld3.c:6 as non-NULL at: if (!(children = PyObject_GetAttr(node, PySTR_children))) { meld3/cmeld3.c:209:8: note: when PyObject_GetAttr() succeeds at: if (!(children = PyObject_GetAttr(node, PySTR_children))) { meld3/cmeld3.c:209:8: note: taking False path at: if (!(children = PyObject_GetAttr(node, PySTR_children))) { meld3/cmeld3.c:214:22: note: reaching: len = PyList_Size(children); meld3/cmeld3.c:214:22: note: when PyList_Size() returns ob_size at: len = PyList_Size(children); meld3/cmeld3.c:215:8: note: when considering range: -0x80000000 <= value <= -1 at: if (len < 0) { meld3/cmeld3.c:215:8: note: taking True path at: if (len < 0) { meld3/cmeld3.c:216:2: note: reaching: return NULL; meld3/cmeld3.c:228:1: note: returning meld3/cmeld3.c:228:1: warning: ob_refcnt of return value is 1 too low [enabled by default] meld3/cmeld3.c:228:1: note: was expecting final ob_refcnt to be N + 1 (for some unknown N) meld3/cmeld3.c:228:1: note: due to object being referenced by: return value meld3/cmeld3.c:228:1: note: but final ob_refcnt is N + 0 meld3/cmeld3.c:203:22: note: when treating ob_size as 0 at: if (PyList_Append(list, node) == -1) { meld3/cmeld3.c:203:22: note: when PyList_Append() succeeds at: if (PyList_Append(list, node) == -1) { meld3/cmeld3.c:203:8: note: taking False path at: if (PyList_Append(list, node) == -1) { meld3/cmeld3.c:209:38: note: reaching: if (!(children = PyObject_GetAttr(node, PySTR_children))) { meld3/cmeld3.c:209:8: note: when treating unknown struct PyObject * from meld3/cmeld3.c:6 as non-NULL at: if (!(children = PyObject_GetAttr(node, PySTR_children))) { meld3/cmeld3.c:209:8: note: when PyObject_GetAttr() succeeds at: if (!(children = PyObject_GetAttr(node, PySTR_children))) { meld3/cmeld3.c:209:8: note: taking False path at: if (!(children = PyObject_GetAttr(node, PySTR_children))) { meld3/cmeld3.c:214:22: note: reaching: len = PyList_Size(children); meld3/cmeld3.c:214:22: note: when PyList_Size() returns ob_size at: len = PyList_Size(children); meld3/cmeld3.c:215:8: note: when considering range: 0 <= value <= 0x7fffffff at: if (len < 0) { meld3/cmeld3.c:215:8: note: taking False path at: if (len < 0) { meld3/cmeld3.c:219:12: note: reaching: for (i = 0; i < len; i++) { meld3/cmeld3.c:219:5: note: when considering len == (int)0 from meld3/cmeld3.c:214 at: for (i = 0; i < len; i++) { meld3/cmeld3.c:219:5: note: taking False path at: for (i = 0; i < len; i++) { meld3/cmeld3.c:226:5: note: reaching: Py_DECREF(children); meld3/cmeld3.c:226:5: note: when taking True path at: Py_DECREF(children); meld3/cmeld3.c:227:5: note: reaching: return list; meld3/cmeld3.c:228:1: note: returning meld3/cmeld3.c:228:1: note: found 5 similar trace(s) to this meld3/cmeld3.c:228:1: warning: ob_refcnt of new ref from (unknown) getiterator is 1 too high [enabled by default] meld3/cmeld3.c:228:1: note: was expecting final ob_refcnt to be N + 0 (for some unknown N) meld3/cmeld3.c:228:1: note: but final ob_refcnt is N + 1 meld3/cmeld3.c:223:20: note: new ref from (unknown) getiterator allocated at: getiterator(child, list); meld3/cmeld3.c:203:22: note: when treating ob_size as 0 at: if (PyList_Append(list, node) == -1) { meld3/cmeld3.c:203:22: note: when PyList_Append() succeeds at: if (PyList_Append(list, node) == -1) { meld3/cmeld3.c:203:8: note: taking False path at: if (PyList_Append(list, node) == -1) { meld3/cmeld3.c:209:38: note: reaching: if (!(children = PyObject_GetAttr(node, PySTR_children))) { meld3/cmeld3.c:209:8: note: when treating unknown struct PyObject * from meld3/cmeld3.c:6 as non-NULL at: if (!(children = PyObject_GetAttr(node, PySTR_children))) { meld3/cmeld3.c:209:8: note: when PyObject_GetAttr() succeeds at: if (!(children = PyObject_GetAttr(node, PySTR_children))) { meld3/cmeld3.c:209:8: note: taking False path at: if (!(children = PyObject_GetAttr(node, PySTR_children))) { meld3/cmeld3.c:214:22: note: reaching: len = PyList_Size(children); meld3/cmeld3.c:214:22: note: when PyList_Size() returns ob_size at: len = PyList_Size(children); meld3/cmeld3.c:215:8: note: when considering range: 0 <= value <= 0x7fffffff at: if (len < 0) { meld3/cmeld3.c:215:8: note: taking False path at: if (len < 0) { meld3/cmeld3.c:219:12: note: reaching: for (i = 0; i < len; i++) { meld3/cmeld3.c:219:5: note: when considering range: 1 <= len <= 0x7fffffff at: for (i = 0; i < len; i++) { meld3/cmeld3.c:219:5: note: taking True path at: for (i = 0; i < len; i++) { meld3/cmeld3.c:220:30: note: reaching: if (!(child = PyList_GetItem(children, i))) { meld3/cmeld3.c:220:5: note: taking False path at: if (!(child = PyList_GetItem(children, i))) { meld3/cmeld3.c:223:20: note: reaching: getiterator(child, list); meld3/cmeld3.c:223:20: note: when getiterator() succeeds at: getiterator(child, list); meld3/cmeld3.c:223:20: note: ob_refcnt is now refs: 1 + N where N >= 0 meld3/cmeld3.c:219:5: note: when considering len == (int)1 from meld3/cmeld3.c:214 at: for (i = 0; i < len; i++) { meld3/cmeld3.c:219:5: note: taking False path at: for (i = 0; i < len; i++) { meld3/cmeld3.c:226:5: note: reaching: Py_DECREF(children); meld3/cmeld3.c:226:5: note: when taking True path at: Py_DECREF(children); meld3/cmeld3.c:227:5: note: reaching: return list; meld3/cmeld3.c:228:1: note: returning meld3/cmeld3.c:228:1: note: found 1 similar trace(s) to this meld3/cmeld3.c:202:45: note: graphical error report for function 'getiterator' written out to 'build/temp.linux-x86_64-2.7/meld3/cmeld3.c.getiterator-refcount-errors.html' meld3/cmeld3.c: In function 'bfclonehandler': meld3/cmeld3.c:118:1: note: this function is too complicated for the reference-count checker to fully analyze: not all paths were analyzed meld3/cmeld3.c:193:1: warning: ob_refcnt of new ref from (unknown) bfclone is 1 too high [enabled by default] meld3/cmeld3.c:193:1: note: was expecting final ob_refcnt to be N + 0 (for some unknown N) meld3/cmeld3.c:193:1: note: but final ob_refcnt is N + 1 meld3/cmeld3.c:187:13: note: new ref from (unknown) bfclone allocated at: if (bfclone(children, element) == NULL) { meld3/cmeld3.c:121:26: note: when PyArg_ParseTuple() succeeds at: if (!PyArg_ParseTuple(args, "OO:clone", &node, &parent)) { meld3/cmeld3.c:121:8: note: taking False path at: if (!PyArg_ParseTuple(args, "OO:clone", &node, &parent)) { meld3/cmeld3.c:138:35: note: reaching: if (!(klass = PyObject_GetAttr(node, PySTR__class__))) return NULL; meld3/cmeld3.c:138:8: note: when treating unknown struct PyObject * from meld3/cmeld3.c:6 as non-NULL at: if (!(klass = PyObject_GetAttr(node, PySTR__class__))) return NULL; meld3/cmeld3.c:138:8: note: when PyObject_GetAttr() succeeds at: if (!(klass = PyObject_GetAttr(node, PySTR__class__))) return NULL; meld3/cmeld3.c:138:8: note: taking False path at: if (!(klass = PyObject_GetAttr(node, PySTR__class__))) return NULL; meld3/cmeld3.c:139:34: note: reaching: if (!(dict = PyObject_GetAttr(node, PySTR__dict__))) return NULL; meld3/cmeld3.c:139:8: note: when treating unknown struct PyObject * from meld3/cmeld3.c:6 as non-NULL at: if (!(dict = PyObject_GetAttr(node, PySTR__dict__))) return NULL; meld3/cmeld3.c:139:8: note: when PyObject_GetAttr() succeeds at: if (!(dict = PyObject_GetAttr(node, PySTR__dict__))) return NULL; meld3/cmeld3.c:139:8: note: taking False path at: if (!(dict = PyObject_GetAttr(node, PySTR__dict__))) return NULL; meld3/cmeld3.c:141:36: note: reaching: if (!(children = PyDict_GetItem(dict, PySTR_children))) return NULL; meld3/cmeld3.c:141:8: note: when treating unknown struct PyObject * from meld3/cmeld3.c:6 as non-NULL at: if (!(children = PyDict_GetItem(dict, PySTR_children))) return NULL; meld3/cmeld3.c:141:8: note: when PyDict_GetItem() succeeds at: if (!(children = PyDict_GetItem(dict, PySTR_children))) return NULL; meld3/cmeld3.c:141:8: note: taking False path at: if (!(children = PyDict_GetItem(dict, PySTR_children))) return NULL; meld3/cmeld3.c:142:31: note: reaching: if (!(tag = PyDict_GetItem(dict, PySTRtag))) return NULL; meld3/cmeld3.c:142:8: note: when treating unknown struct PyObject * from meld3/cmeld3.c:8 as non-NULL at: if (!(tag = PyDict_GetItem(dict, PySTRtag))) return NULL; meld3/cmeld3.c:142:8: note: when PyDict_GetItem() succeeds at: if (!(tag = PyDict_GetItem(dict, PySTRtag))) return NULL; meld3/cmeld3.c:142:8: note: taking False path at: if (!(tag = PyDict_GetItem(dict, PySTRtag))) return NULL; meld3/cmeld3.c:143:34: note: reaching: if (!(attrib = PyDict_GetItem(dict, PySTRattrib))) return NULL; meld3/cmeld3.c:143:8: note: when treating unknown struct PyObject * from meld3/cmeld3.c:7 as non-NULL at: if (!(attrib = PyDict_GetItem(dict, PySTRattrib))) return NULL; meld3/cmeld3.c:143:8: note: when PyDict_GetItem() succeeds at: if (!(attrib = PyDict_GetItem(dict, PySTRattrib))) return NULL; meld3/cmeld3.c:143:8: note: taking False path at: if (!(attrib = PyDict_GetItem(dict, PySTRattrib))) return NULL; meld3/cmeld3.c:145:32: note: reaching: if (!(text = PyDict_GetItem(dict, PySTRtext))) { meld3/cmeld3.c:145:8: note: when treating unknown struct PyObject * from meld3/cmeld3.c:8 as non-NULL at: if (!(text = PyDict_GetItem(dict, PySTRtext))) { meld3/cmeld3.c:145:8: note: when PyDict_GetItem() succeeds at: if (!(text = PyDict_GetItem(dict, PySTRtext))) { meld3/cmeld3.c:145:8: note: taking False path at: if (!(text = PyDict_GetItem(dict, PySTRtext))) { meld3/cmeld3.c:148:32: note: reaching: if (!(tail = PyDict_GetItem(dict, PySTRtail))) { meld3/cmeld3.c:148:8: note: when treating unknown struct PyObject * from meld3/cmeld3.c:8 as non-NULL at: if (!(tail = PyDict_GetItem(dict, PySTRtail))) { meld3/cmeld3.c:148:8: note: when PyDict_GetItem() succeeds at: if (!(tail = PyDict_GetItem(dict, PySTRtail))) { meld3/cmeld3.c:148:8: note: taking False path at: if (!(tail = PyDict_GetItem(dict, PySTRtail))) { meld3/cmeld3.c:151:37: note: reaching: if (!(structure = PyDict_GetItem(dict, PySTRstructure))) { meld3/cmeld3.c:151:8: note: when treating unknown struct PyObject * from meld3/cmeld3.c:8 as non-NULL at: if (!(structure = PyDict_GetItem(dict, PySTRstructure))) { meld3/cmeld3.c:151:8: note: when PyDict_GetItem() succeeds at: if (!(structure = PyDict_GetItem(dict, PySTRstructure))) { meld3/cmeld3.c:151:8: note: taking False path at: if (!(structure = PyDict_GetItem(dict, PySTRstructure))) { meld3/cmeld3.c:155:5: note: reaching: Py_DECREF(dict); meld3/cmeld3.c:155:5: note: when taking True path at: Py_DECREF(dict); meld3/cmeld3.c:157:8: note: reaching: if (!(newdict = PyDict_New())) return NULL; meld3/cmeld3.c:157:8: note: when PyDict_New() succeeds at: if (!(newdict = PyDict_New())) return NULL; meld3/cmeld3.c:157:8: note: taking False path at: if (!(newdict = PyDict_New())) return NULL; meld3/cmeld3.c:158:8: note: reaching: if (!(newchildren = PyList_New(0))) return NULL; meld3/cmeld3.c:158:8: note: when PyList_New() succeeds at: if (!(newchildren = PyList_New(0))) return NULL; meld3/cmeld3.c:158:8: note: taking False path at: if (!(newchildren = PyList_New(0))) return NULL; meld3/cmeld3.c:160:17: note: reaching: attrib_copy = PyDict_Copy(attrib); meld3/cmeld3.c:160:17: note: when PyDict_Copy() succeeds at: attrib_copy = PyDict_Copy(attrib); meld3/cmeld3.c:162:19: note: when PyDict_SetItem() succeeds at: PyDict_SetItem(newdict, PySTR_children, newchildren); meld3/cmeld3.c:163:5: note: taking True path at: Py_DECREF(newchildren); meld3/cmeld3.c:164:19: note: reaching: PyDict_SetItem(newdict, PySTRattrib, attrib_copy); meld3/cmeld3.c:164:19: note: when PyDict_SetItem() succeeds at: PyDict_SetItem(newdict, PySTRattrib, attrib_copy); meld3/cmeld3.c:165:5: note: taking True path at: Py_DECREF(attrib_copy); meld3/cmeld3.c:166:19: note: reaching: PyDict_SetItem(newdict, PySTRtext, text); meld3/cmeld3.c:166:19: note: when PyDict_SetItem() succeeds at: PyDict_SetItem(newdict, PySTRtext, text); meld3/cmeld3.c:167:19: note: when PyDict_SetItem() succeeds at: PyDict_SetItem(newdict, PySTRtail, tail); meld3/cmeld3.c:168:19: note: when PyDict_SetItem() succeeds at: PyDict_SetItem(newdict, PySTRtag, tag); meld3/cmeld3.c:169:19: note: when PyDict_SetItem() succeeds at: PyDict_SetItem(newdict, PySTRstructure, structure); meld3/cmeld3.c:170:19: note: when treating unknown struct PyObject * from meld3/cmeld3.c:7 as non-NULL at: PyDict_SetItem(newdict, PySTRparent, parent); meld3/cmeld3.c:170:19: note: when PyDict_SetItem() succeeds at: PyDict_SetItem(newdict, PySTRparent, parent); meld3/cmeld3.c:172:8: note: when PyInstance_NewRaw() succeeds at: if (!(element = PyInstance_NewRaw(klass, newdict))) return NULL; meld3/cmeld3.c:172:8: note: taking False path at: if (!(element = PyInstance_NewRaw(klass, newdict))) return NULL; meld3/cmeld3.c:173:5: note: reaching: Py_DECREF(newdict); meld3/cmeld3.c:173:5: note: when taking True path at: Py_DECREF(newdict); meld3/cmeld3.c:174:5: note: reaching: Py_DECREF(klass); meld3/cmeld3.c:174:5: note: when taking False path at: Py_DECREF(klass); meld3/cmeld3.c:174:5: note: reaching: Py_DECREF(klass); meld3/cmeld3.c:174:5: note: calling tp_dealloc on new ref from call to PyObject_GetAttr allocated at meld3/cmeld3.c:138 at: Py_DECREF(klass); meld3/cmeld3.c:178:16: note: reaching: if (parent != Py_None) { meld3/cmeld3.c:178:8: note: taking True path at: if (parent != Py_None) { meld3/cmeld3.c:179:41: note: reaching: if (!(pchildren=PyObject_GetAttr(parent, PySTR_children))) return NULL; meld3/cmeld3.c:179:12: note: when PyObject_GetAttr() succeeds at: if (!(pchildren=PyObject_GetAttr(parent, PySTR_children))) return NULL; meld3/cmeld3.c:179:12: note: taking False path at: if (!(pchildren=PyObject_GetAttr(parent, PySTR_children))) return NULL; meld3/cmeld3.c:180:19: note: reaching: if (PyList_Append(pchildren, element)) return NULL; meld3/cmeld3.c:180:19: note: when treating ob_size as 0 at: if (PyList_Append(pchildren, element)) return NULL; meld3/cmeld3.c:180:19: note: when PyList_Append() succeeds at: if (PyList_Append(pchildren, element)) return NULL; meld3/cmeld3.c:180:5: note: taking False path at: if (PyList_Append(pchildren, element)) return NULL; meld3/cmeld3.c:181:9: note: reaching: Py_DECREF(pchildren); meld3/cmeld3.c:181:9: note: when taking False path at: Py_DECREF(pchildren); meld3/cmeld3.c:181:9: note: reaching: Py_DECREF(pchildren); meld3/cmeld3.c:181:9: note: calling tp_dealloc on new ref from call to PyObject_GetAttr allocated at meld3/cmeld3.c:179 at: Py_DECREF(pchildren); meld3/cmeld3.c:184:11: note: reaching: if (!(PyList_Check(children))) return NULL; meld3/cmeld3.c:184:8: note: when considering range: 1 <= value <= 0x2000000 at: if (!(PyList_Check(children))) return NULL; meld3/cmeld3.c:184:8: note: taking False path at: if (!(PyList_Check(children))) return NULL; meld3/cmeld3.c:186:20: note: reaching: if (PyList_Size(children) > 0) { meld3/cmeld3.c:186:20: note: when PyList_Size() returns ob_size at: if (PyList_Size(children) > 0) { meld3/cmeld3.c:186:8: note: when considering range: 1 <= value <= 0x7fffffffffffffff at: if (PyList_Size(children) > 0) { meld3/cmeld3.c:186:8: note: taking True path at: if (PyList_Size(children) > 0) { meld3/cmeld3.c:187:13: note: reaching: if (bfclone(children, element) == NULL) { meld3/cmeld3.c:187:13: note: when bfclone() succeeds at: if (bfclone(children, element) == NULL) { meld3/cmeld3.c:187:13: note: ob_refcnt is now refs: 1 + N where N >= 0 meld3/cmeld3.c:187:5: note: taking False path at: if (bfclone(children, element) == NULL) { meld3/cmeld3.c:191:5: note: reaching: return element; meld3/cmeld3.c:193:1: note: returning meld3/cmeld3.c:193:1: note: found 3 similar trace(s) to this meld3/cmeld3.c:193:1: warning: ob_refcnt of '*element' is 1 too high [enabled by default] meld3/cmeld3.c:193:1: note: was expecting final ob_refcnt to be N + 1 (for some unknown N) meld3/cmeld3.c:193:1: note: due to object being referenced by: new ref from call to PyObject_GetAttr.ob_item[0] meld3/cmeld3.c:193:1: note: but final ob_refcnt is N + 2 meld3/cmeld3.c:172:8: note: new ref from (unknown) PyInstance_NewRaw allocated at: if (!(element = PyInstance_NewRaw(klass, newdict))) return NULL; meld3/cmeld3.c:121:26: note: when PyArg_ParseTuple() succeeds at: if (!PyArg_ParseTuple(args, "OO:clone", &node, &parent)) { meld3/cmeld3.c:121:8: note: taking False path at: if (!PyArg_ParseTuple(args, "OO:clone", &node, &parent)) { meld3/cmeld3.c:138:35: note: reaching: if (!(klass = PyObject_GetAttr(node, PySTR__class__))) return NULL; meld3/cmeld3.c:138:8: note: when treating unknown struct PyObject * from meld3/cmeld3.c:6 as non-NULL at: if (!(klass = PyObject_GetAttr(node, PySTR__class__))) return NULL; meld3/cmeld3.c:138:8: note: when PyObject_GetAttr() succeeds at: if (!(klass = PyObject_GetAttr(node, PySTR__class__))) return NULL; meld3/cmeld3.c:138:8: note: taking False path at: if (!(klass = PyObject_GetAttr(node, PySTR__class__))) return NULL; meld3/cmeld3.c:139:34: note: reaching: if (!(dict = PyObject_GetAttr(node, PySTR__dict__))) return NULL; meld3/cmeld3.c:139:8: note: when treating unknown struct PyObject * from meld3/cmeld3.c:6 as non-NULL at: if (!(dict = PyObject_GetAttr(node, PySTR__dict__))) return NULL; meld3/cmeld3.c:139:8: note: when PyObject_GetAttr() succeeds at: if (!(dict = PyObject_GetAttr(node, PySTR__dict__))) return NULL; meld3/cmeld3.c:139:8: note: taking False path at: if (!(dict = PyObject_GetAttr(node, PySTR__dict__))) return NULL; meld3/cmeld3.c:141:36: note: reaching: if (!(children = PyDict_GetItem(dict, PySTR_children))) return NULL; meld3/cmeld3.c:141:8: note: when treating unknown struct PyObject * from meld3/cmeld3.c:6 as non-NULL at: if (!(children = PyDict_GetItem(dict, PySTR_children))) return NULL; meld3/cmeld3.c:141:8: note: when PyDict_GetItem() succeeds at: if (!(children = PyDict_GetItem(dict, PySTR_children))) return NULL; meld3/cmeld3.c:141:8: note: taking False path at: if (!(children = PyDict_GetItem(dict, PySTR_children))) return NULL; meld3/cmeld3.c:142:31: note: reaching: if (!(tag = PyDict_GetItem(dict, PySTRtag))) return NULL; meld3/cmeld3.c:142:8: note: when treating unknown struct PyObject * from meld3/cmeld3.c:8 as non-NULL at: if (!(tag = PyDict_GetItem(dict, PySTRtag))) return NULL; meld3/cmeld3.c:142:8: note: when PyDict_GetItem() succeeds at: if (!(tag = PyDict_GetItem(dict, PySTRtag))) return NULL; meld3/cmeld3.c:142:8: note: taking False path at: if (!(tag = PyDict_GetItem(dict, PySTRtag))) return NULL; meld3/cmeld3.c:143:34: note: reaching: if (!(attrib = PyDict_GetItem(dict, PySTRattrib))) return NULL; meld3/cmeld3.c:143:8: note: when treating unknown struct PyObject * from meld3/cmeld3.c:7 as non-NULL at: if (!(attrib = PyDict_GetItem(dict, PySTRattrib))) return NULL; meld3/cmeld3.c:143:8: note: when PyDict_GetItem() succeeds at: if (!(attrib = PyDict_GetItem(dict, PySTRattrib))) return NULL; meld3/cmeld3.c:143:8: note: taking False path at: if (!(attrib = PyDict_GetItem(dict, PySTRattrib))) return NULL; meld3/cmeld3.c:145:32: note: reaching: if (!(text = PyDict_GetItem(dict, PySTRtext))) { meld3/cmeld3.c:145:8: note: when treating unknown struct PyObject * from meld3/cmeld3.c:8 as non-NULL at: if (!(text = PyDict_GetItem(dict, PySTRtext))) { meld3/cmeld3.c:145:8: note: when PyDict_GetItem() succeeds at: if (!(text = PyDict_GetItem(dict, PySTRtext))) { meld3/cmeld3.c:145:8: note: taking False path at: if (!(text = PyDict_GetItem(dict, PySTRtext))) { meld3/cmeld3.c:148:32: note: reaching: if (!(tail = PyDict_GetItem(dict, PySTRtail))) { meld3/cmeld3.c:148:8: note: when treating unknown struct PyObject * from meld3/cmeld3.c:8 as non-NULL at: if (!(tail = PyDict_GetItem(dict, PySTRtail))) { meld3/cmeld3.c:148:8: note: when PyDict_GetItem() succeeds at: if (!(tail = PyDict_GetItem(dict, PySTRtail))) { meld3/cmeld3.c:148:8: note: taking False path at: if (!(tail = PyDict_GetItem(dict, PySTRtail))) { meld3/cmeld3.c:151:37: note: reaching: if (!(structure = PyDict_GetItem(dict, PySTRstructure))) { meld3/cmeld3.c:151:8: note: when treating unknown struct PyObject * from meld3/cmeld3.c:8 as non-NULL at: if (!(structure = PyDict_GetItem(dict, PySTRstructure))) { meld3/cmeld3.c:151:8: note: when PyDict_GetItem() succeeds at: if (!(structure = PyDict_GetItem(dict, PySTRstructure))) { meld3/cmeld3.c:151:8: note: taking False path at: if (!(structure = PyDict_GetItem(dict, PySTRstructure))) { meld3/cmeld3.c:155:5: note: reaching: Py_DECREF(dict); meld3/cmeld3.c:155:5: note: when taking True path at: Py_DECREF(dict); meld3/cmeld3.c:157:8: note: reaching: if (!(newdict = PyDict_New())) return NULL; meld3/cmeld3.c:157:8: note: when PyDict_New() succeeds at: if (!(newdict = PyDict_New())) return NULL; meld3/cmeld3.c:157:8: note: taking False path at: if (!(newdict = PyDict_New())) return NULL; meld3/cmeld3.c:158:8: note: reaching: if (!(newchildren = PyList_New(0))) return NULL; meld3/cmeld3.c:158:8: note: when PyList_New() succeeds at: if (!(newchildren = PyList_New(0))) return NULL; meld3/cmeld3.c:158:8: note: taking False path at: if (!(newchildren = PyList_New(0))) return NULL; meld3/cmeld3.c:160:17: note: reaching: attrib_copy = PyDict_Copy(attrib); meld3/cmeld3.c:160:17: note: when PyDict_Copy() succeeds at: attrib_copy = PyDict_Copy(attrib); meld3/cmeld3.c:162:19: note: when PyDict_SetItem() succeeds at: PyDict_SetItem(newdict, PySTR_children, newchildren); meld3/cmeld3.c:163:5: note: taking True path at: Py_DECREF(newchildren); meld3/cmeld3.c:164:19: note: reaching: PyDict_SetItem(newdict, PySTRattrib, attrib_copy); meld3/cmeld3.c:164:19: note: when PyDict_SetItem() succeeds at: PyDict_SetItem(newdict, PySTRattrib, attrib_copy); meld3/cmeld3.c:165:5: note: taking True path at: Py_DECREF(attrib_copy); meld3/cmeld3.c:166:19: note: reaching: PyDict_SetItem(newdict, PySTRtext, text); meld3/cmeld3.c:166:19: note: when PyDict_SetItem() succeeds at: PyDict_SetItem(newdict, PySTRtext, text); meld3/cmeld3.c:167:19: note: when PyDict_SetItem() succeeds at: PyDict_SetItem(newdict, PySTRtail, tail); meld3/cmeld3.c:168:19: note: when PyDict_SetItem() succeeds at: PyDict_SetItem(newdict, PySTRtag, tag); meld3/cmeld3.c:169:19: note: when PyDict_SetItem() succeeds at: PyDict_SetItem(newdict, PySTRstructure, structure); meld3/cmeld3.c:170:19: note: when treating unknown struct PyObject * from meld3/cmeld3.c:7 as non-NULL at: PyDict_SetItem(newdict, PySTRparent, parent); meld3/cmeld3.c:170:19: note: when PyDict_SetItem() succeeds at: PyDict_SetItem(newdict, PySTRparent, parent); meld3/cmeld3.c:172:8: note: when PyInstance_NewRaw() succeeds at: if (!(element = PyInstance_NewRaw(klass, newdict))) return NULL; meld3/cmeld3.c:172:8: note: ob_refcnt is now refs: 1 + N where N >= 0 meld3/cmeld3.c:172:8: note: taking False path at: if (!(element = PyInstance_NewRaw(klass, newdict))) return NULL; meld3/cmeld3.c:173:5: note: reaching: Py_DECREF(newdict); meld3/cmeld3.c:173:5: note: when taking True path at: Py_DECREF(newdict); meld3/cmeld3.c:174:5: note: reaching: Py_DECREF(klass); meld3/cmeld3.c:174:5: note: when taking False path at: Py_DECREF(klass); meld3/cmeld3.c:174:5: note: reaching: Py_DECREF(klass); meld3/cmeld3.c:174:5: note: calling tp_dealloc on new ref from call to PyObject_GetAttr allocated at meld3/cmeld3.c:138 at: Py_DECREF(klass); meld3/cmeld3.c:178:16: note: reaching: if (parent != Py_None) { meld3/cmeld3.c:178:8: note: taking True path at: if (parent != Py_None) { meld3/cmeld3.c:179:41: note: reaching: if (!(pchildren=PyObject_GetAttr(parent, PySTR_children))) return NULL; meld3/cmeld3.c:179:12: note: when PyObject_GetAttr() succeeds at: if (!(pchildren=PyObject_GetAttr(parent, PySTR_children))) return NULL; meld3/cmeld3.c:179:12: note: taking False path at: if (!(pchildren=PyObject_GetAttr(parent, PySTR_children))) return NULL; meld3/cmeld3.c:180:19: note: reaching: if (PyList_Append(pchildren, element)) return NULL; meld3/cmeld3.c:180:19: note: when treating ob_size as 0 at: if (PyList_Append(pchildren, element)) return NULL; meld3/cmeld3.c:180:19: note: when PyList_Append() succeeds at: if (PyList_Append(pchildren, element)) return NULL; meld3/cmeld3.c:180:19: note: ob_refcnt is now refs: 2 + N where N >= 0 meld3/cmeld3.c:180:19: note: '*element' is now referenced by 1 non-stack value(s): new ref from call to PyObject_GetAttr.ob_item[0] meld3/cmeld3.c:180:5: note: taking False path at: if (PyList_Append(pchildren, element)) return NULL; meld3/cmeld3.c:181:9: note: reaching: Py_DECREF(pchildren); meld3/cmeld3.c:181:9: note: when taking False path at: Py_DECREF(pchildren); meld3/cmeld3.c:181:9: note: reaching: Py_DECREF(pchildren); meld3/cmeld3.c:181:9: note: calling tp_dealloc on new ref from call to PyObject_GetAttr allocated at meld3/cmeld3.c:179 at: Py_DECREF(pchildren); meld3/cmeld3.c:184:11: note: reaching: if (!(PyList_Check(children))) return NULL; meld3/cmeld3.c:184:8: note: when considering value == (long int)0 from meld3/cmeld3.c:184 at: if (!(PyList_Check(children))) return NULL; meld3/cmeld3.c:184:8: note: taking True path at: if (!(PyList_Check(children))) return NULL; meld3/cmeld3.c:184:36: note: reaching: if (!(PyList_Check(children))) return NULL; meld3/cmeld3.c:193:1: note: returning meld3/cmeld3.c:193:1: note: found 8 similar trace(s) to this meld3/cmeld3.c:193:1: warning: returning (PyObject*)NULL without setting an exception [enabled by default] meld3/cmeld3.c:121:26: note: when PyArg_ParseTuple() succeeds at: if (!PyArg_ParseTuple(args, "OO:clone", &node, &parent)) { meld3/cmeld3.c:121:8: note: taking False path at: if (!PyArg_ParseTuple(args, "OO:clone", &node, &parent)) { meld3/cmeld3.c:138:35: note: reaching: if (!(klass = PyObject_GetAttr(node, PySTR__class__))) return NULL; meld3/cmeld3.c:138:8: note: when treating unknown struct PyObject * from meld3/cmeld3.c:6 as non-NULL at: if (!(klass = PyObject_GetAttr(node, PySTR__class__))) return NULL; meld3/cmeld3.c:138:8: note: when PyObject_GetAttr() succeeds at: if (!(klass = PyObject_GetAttr(node, PySTR__class__))) return NULL; meld3/cmeld3.c:138:8: note: taking False path at: if (!(klass = PyObject_GetAttr(node, PySTR__class__))) return NULL; meld3/cmeld3.c:139:34: note: reaching: if (!(dict = PyObject_GetAttr(node, PySTR__dict__))) return NULL; meld3/cmeld3.c:139:8: note: when treating unknown struct PyObject * from meld3/cmeld3.c:6 as non-NULL at: if (!(dict = PyObject_GetAttr(node, PySTR__dict__))) return NULL; meld3/cmeld3.c:139:8: note: when PyObject_GetAttr() succeeds at: if (!(dict = PyObject_GetAttr(node, PySTR__dict__))) return NULL; meld3/cmeld3.c:139:8: note: taking False path at: if (!(dict = PyObject_GetAttr(node, PySTR__dict__))) return NULL; meld3/cmeld3.c:141:36: note: reaching: if (!(children = PyDict_GetItem(dict, PySTR_children))) return NULL; meld3/cmeld3.c:141:8: note: when treating unknown struct PyObject * from meld3/cmeld3.c:6 as non-NULL at: if (!(children = PyDict_GetItem(dict, PySTR_children))) return NULL; meld3/cmeld3.c:141:8: note: when PyDict_GetItem() succeeds at: if (!(children = PyDict_GetItem(dict, PySTR_children))) return NULL; meld3/cmeld3.c:141:8: note: taking False path at: if (!(children = PyDict_GetItem(dict, PySTR_children))) return NULL; meld3/cmeld3.c:142:31: note: reaching: if (!(tag = PyDict_GetItem(dict, PySTRtag))) return NULL; meld3/cmeld3.c:142:8: note: when treating unknown struct PyObject * from meld3/cmeld3.c:8 as non-NULL at: if (!(tag = PyDict_GetItem(dict, PySTRtag))) return NULL; meld3/cmeld3.c:142:8: note: when PyDict_GetItem() succeeds at: if (!(tag = PyDict_GetItem(dict, PySTRtag))) return NULL; meld3/cmeld3.c:142:8: note: taking False path at: if (!(tag = PyDict_GetItem(dict, PySTRtag))) return NULL; meld3/cmeld3.c:143:34: note: reaching: if (!(attrib = PyDict_GetItem(dict, PySTRattrib))) return NULL; meld3/cmeld3.c:143:8: note: when treating unknown struct PyObject * from meld3/cmeld3.c:7 as non-NULL at: if (!(attrib = PyDict_GetItem(dict, PySTRattrib))) return NULL; meld3/cmeld3.c:143:8: note: when PyDict_GetItem() succeeds at: if (!(attrib = PyDict_GetItem(dict, PySTRattrib))) return NULL; meld3/cmeld3.c:143:8: note: taking False path at: if (!(attrib = PyDict_GetItem(dict, PySTRattrib))) return NULL; meld3/cmeld3.c:145:32: note: reaching: if (!(text = PyDict_GetItem(dict, PySTRtext))) { meld3/cmeld3.c:145:8: note: when treating unknown struct PyObject * from meld3/cmeld3.c:8 as non-NULL at: if (!(text = PyDict_GetItem(dict, PySTRtext))) { meld3/cmeld3.c:145:8: note: when PyDict_GetItem() succeeds at: if (!(text = PyDict_GetItem(dict, PySTRtext))) { meld3/cmeld3.c:145:8: note: taking False path at: if (!(text = PyDict_GetItem(dict, PySTRtext))) { meld3/cmeld3.c:148:32: note: reaching: if (!(tail = PyDict_GetItem(dict, PySTRtail))) { meld3/cmeld3.c:148:8: note: when treating unknown struct PyObject * from meld3/cmeld3.c:8 as non-NULL at: if (!(tail = PyDict_GetItem(dict, PySTRtail))) { meld3/cmeld3.c:148:8: note: when PyDict_GetItem() succeeds at: if (!(tail = PyDict_GetItem(dict, PySTRtail))) { meld3/cmeld3.c:148:8: note: taking False path at: if (!(tail = PyDict_GetItem(dict, PySTRtail))) { meld3/cmeld3.c:151:37: note: reaching: if (!(structure = PyDict_GetItem(dict, PySTRstructure))) { meld3/cmeld3.c:151:8: note: when treating unknown struct PyObject * from meld3/cmeld3.c:8 as non-NULL at: if (!(structure = PyDict_GetItem(dict, PySTRstructure))) { meld3/cmeld3.c:151:8: note: when PyDict_GetItem() succeeds at: if (!(structure = PyDict_GetItem(dict, PySTRstructure))) { meld3/cmeld3.c:151:8: note: taking False path at: if (!(structure = PyDict_GetItem(dict, PySTRstructure))) { meld3/cmeld3.c:155:5: note: reaching: Py_DECREF(dict); meld3/cmeld3.c:155:5: note: when taking True path at: Py_DECREF(dict); meld3/cmeld3.c:157:8: note: reaching: if (!(newdict = PyDict_New())) return NULL; meld3/cmeld3.c:157:8: note: when PyDict_New() succeeds at: if (!(newdict = PyDict_New())) return NULL; meld3/cmeld3.c:157:8: note: taking False path at: if (!(newdict = PyDict_New())) return NULL; meld3/cmeld3.c:158:8: note: reaching: if (!(newchildren = PyList_New(0))) return NULL; meld3/cmeld3.c:158:8: note: when PyList_New() succeeds at: if (!(newchildren = PyList_New(0))) return NULL; meld3/cmeld3.c:158:8: note: taking False path at: if (!(newchildren = PyList_New(0))) return NULL; meld3/cmeld3.c:160:17: note: reaching: attrib_copy = PyDict_Copy(attrib); meld3/cmeld3.c:160:17: note: when PyDict_Copy() succeeds at: attrib_copy = PyDict_Copy(attrib); meld3/cmeld3.c:162:19: note: when PyDict_SetItem() succeeds at: PyDict_SetItem(newdict, PySTR_children, newchildren); meld3/cmeld3.c:163:5: note: taking True path at: Py_DECREF(newchildren); meld3/cmeld3.c:164:19: note: reaching: PyDict_SetItem(newdict, PySTRattrib, attrib_copy); meld3/cmeld3.c:164:19: note: when PyDict_SetItem() succeeds at: PyDict_SetItem(newdict, PySTRattrib, attrib_copy); meld3/cmeld3.c:165:5: note: taking True path at: Py_DECREF(attrib_copy); meld3/cmeld3.c:166:19: note: reaching: PyDict_SetItem(newdict, PySTRtext, text); meld3/cmeld3.c:166:19: note: when PyDict_SetItem() succeeds at: PyDict_SetItem(newdict, PySTRtext, text); meld3/cmeld3.c:167:19: note: when PyDict_SetItem() succeeds at: PyDict_SetItem(newdict, PySTRtail, tail); meld3/cmeld3.c:168:19: note: when PyDict_SetItem() succeeds at: PyDict_SetItem(newdict, PySTRtag, tag); meld3/cmeld3.c:169:19: note: when PyDict_SetItem() succeeds at: PyDict_SetItem(newdict, PySTRstructure, structure); meld3/cmeld3.c:170:19: note: when treating unknown struct PyObject * from meld3/cmeld3.c:7 as non-NULL at: PyDict_SetItem(newdict, PySTRparent, parent); meld3/cmeld3.c:170:19: note: when PyDict_SetItem() succeeds at: PyDict_SetItem(newdict, PySTRparent, parent); meld3/cmeld3.c:172:8: note: when PyInstance_NewRaw() succeeds at: if (!(element = PyInstance_NewRaw(klass, newdict))) return NULL; meld3/cmeld3.c:172:8: note: taking False path at: if (!(element = PyInstance_NewRaw(klass, newdict))) return NULL; meld3/cmeld3.c:173:5: note: reaching: Py_DECREF(newdict); meld3/cmeld3.c:173:5: note: when taking True path at: Py_DECREF(newdict); meld3/cmeld3.c:174:5: note: reaching: Py_DECREF(klass); meld3/cmeld3.c:174:5: note: when taking False path at: Py_DECREF(klass); meld3/cmeld3.c:174:5: note: reaching: Py_DECREF(klass); meld3/cmeld3.c:174:5: note: calling tp_dealloc on new ref from call to PyObject_GetAttr allocated at meld3/cmeld3.c:138 at: Py_DECREF(klass); meld3/cmeld3.c:178:16: note: reaching: if (parent != Py_None) { meld3/cmeld3.c:178:8: note: taking True path at: if (parent != Py_None) { meld3/cmeld3.c:179:41: note: reaching: if (!(pchildren=PyObject_GetAttr(parent, PySTR_children))) return NULL; meld3/cmeld3.c:179:12: note: when PyObject_GetAttr() succeeds at: if (!(pchildren=PyObject_GetAttr(parent, PySTR_children))) return NULL; meld3/cmeld3.c:179:12: note: taking False path at: if (!(pchildren=PyObject_GetAttr(parent, PySTR_children))) return NULL; meld3/cmeld3.c:180:19: note: reaching: if (PyList_Append(pchildren, element)) return NULL; meld3/cmeld3.c:180:19: note: when treating ob_size as 0 at: if (PyList_Append(pchildren, element)) return NULL; meld3/cmeld3.c:180:19: note: when PyList_Append() succeeds at: if (PyList_Append(pchildren, element)) return NULL; meld3/cmeld3.c:180:5: note: taking False path at: if (PyList_Append(pchildren, element)) return NULL; meld3/cmeld3.c:181:9: note: reaching: Py_DECREF(pchildren); meld3/cmeld3.c:181:9: note: when taking False path at: Py_DECREF(pchildren); meld3/cmeld3.c:181:9: note: reaching: Py_DECREF(pchildren); meld3/cmeld3.c:181:9: note: calling tp_dealloc on new ref from call to PyObject_GetAttr allocated at meld3/cmeld3.c:179 at: Py_DECREF(pchildren); meld3/cmeld3.c:184:11: note: reaching: if (!(PyList_Check(children))) return NULL; meld3/cmeld3.c:184:8: note: when considering value == (long int)0 from meld3/cmeld3.c:184 at: if (!(PyList_Check(children))) return NULL; meld3/cmeld3.c:184:8: note: taking True path at: if (!(PyList_Check(children))) return NULL; meld3/cmeld3.c:184:36: note: reaching: if (!(PyList_Check(children))) return NULL; meld3/cmeld3.c:193:1: note: returning meld3/cmeld3.c:193:1: note: found 3 similar trace(s) to this meld3/cmeld3.c:193:1: warning: ob_refcnt of '*pchildren' is 1 too high [enabled by default] meld3/cmeld3.c:193:1: note: was expecting final ob_refcnt to be N + 0 (for some unknown N) meld3/cmeld3.c:193:1: note: but final ob_refcnt is N + 1 meld3/cmeld3.c:179:12: note: new ref from call to PyObject_GetAttr allocated at: if (!(pchildren=PyObject_GetAttr(parent, PySTR_children))) return NULL; meld3/cmeld3.c:121:26: note: when PyArg_ParseTuple() succeeds at: if (!PyArg_ParseTuple(args, "OO:clone", &node, &parent)) { meld3/cmeld3.c:121:8: note: taking False path at: if (!PyArg_ParseTuple(args, "OO:clone", &node, &parent)) { meld3/cmeld3.c:138:35: note: reaching: if (!(klass = PyObject_GetAttr(node, PySTR__class__))) return NULL; meld3/cmeld3.c:138:8: note: when treating unknown struct PyObject * from meld3/cmeld3.c:6 as non-NULL at: if (!(klass = PyObject_GetAttr(node, PySTR__class__))) return NULL; meld3/cmeld3.c:138:8: note: when PyObject_GetAttr() succeeds at: if (!(klass = PyObject_GetAttr(node, PySTR__class__))) return NULL; meld3/cmeld3.c:138:8: note: taking False path at: if (!(klass = PyObject_GetAttr(node, PySTR__class__))) return NULL; meld3/cmeld3.c:139:34: note: reaching: if (!(dict = PyObject_GetAttr(node, PySTR__dict__))) return NULL; meld3/cmeld3.c:139:8: note: when treating unknown struct PyObject * from meld3/cmeld3.c:6 as non-NULL at: if (!(dict = PyObject_GetAttr(node, PySTR__dict__))) return NULL; meld3/cmeld3.c:139:8: note: when PyObject_GetAttr() succeeds at: if (!(dict = PyObject_GetAttr(node, PySTR__dict__))) return NULL; meld3/cmeld3.c:139:8: note: taking False path at: if (!(dict = PyObject_GetAttr(node, PySTR__dict__))) return NULL; meld3/cmeld3.c:141:36: note: reaching: if (!(children = PyDict_GetItem(dict, PySTR_children))) return NULL; meld3/cmeld3.c:141:8: note: when treating unknown struct PyObject * from meld3/cmeld3.c:6 as non-NULL at: if (!(children = PyDict_GetItem(dict, PySTR_children))) return NULL; meld3/cmeld3.c:141:8: note: when PyDict_GetItem() succeeds at: if (!(children = PyDict_GetItem(dict, PySTR_children))) return NULL; meld3/cmeld3.c:141:8: note: taking False path at: if (!(children = PyDict_GetItem(dict, PySTR_children))) return NULL; meld3/cmeld3.c:142:31: note: reaching: if (!(tag = PyDict_GetItem(dict, PySTRtag))) return NULL; meld3/cmeld3.c:142:8: note: when treating unknown struct PyObject * from meld3/cmeld3.c:8 as non-NULL at: if (!(tag = PyDict_GetItem(dict, PySTRtag))) return NULL; meld3/cmeld3.c:142:8: note: when PyDict_GetItem() succeeds at: if (!(tag = PyDict_GetItem(dict, PySTRtag))) return NULL; meld3/cmeld3.c:142:8: note: taking False path at: if (!(tag = PyDict_GetItem(dict, PySTRtag))) return NULL; meld3/cmeld3.c:143:34: note: reaching: if (!(attrib = PyDict_GetItem(dict, PySTRattrib))) return NULL; meld3/cmeld3.c:143:8: note: when treating unknown struct PyObject * from meld3/cmeld3.c:7 as non-NULL at: if (!(attrib = PyDict_GetItem(dict, PySTRattrib))) return NULL; meld3/cmeld3.c:143:8: note: when PyDict_GetItem() succeeds at: if (!(attrib = PyDict_GetItem(dict, PySTRattrib))) return NULL; meld3/cmeld3.c:143:8: note: taking False path at: if (!(attrib = PyDict_GetItem(dict, PySTRattrib))) return NULL; meld3/cmeld3.c:145:32: note: reaching: if (!(text = PyDict_GetItem(dict, PySTRtext))) { meld3/cmeld3.c:145:8: note: when treating unknown struct PyObject * from meld3/cmeld3.c:8 as non-NULL at: if (!(text = PyDict_GetItem(dict, PySTRtext))) { meld3/cmeld3.c:145:8: note: when PyDict_GetItem() succeeds at: if (!(text = PyDict_GetItem(dict, PySTRtext))) { meld3/cmeld3.c:145:8: note: taking False path at: if (!(text = PyDict_GetItem(dict, PySTRtext))) { meld3/cmeld3.c:148:32: note: reaching: if (!(tail = PyDict_GetItem(dict, PySTRtail))) { meld3/cmeld3.c:148:8: note: when treating unknown struct PyObject * from meld3/cmeld3.c:8 as non-NULL at: if (!(tail = PyDict_GetItem(dict, PySTRtail))) { meld3/cmeld3.c:148:8: note: when PyDict_GetItem() succeeds at: if (!(tail = PyDict_GetItem(dict, PySTRtail))) { meld3/cmeld3.c:148:8: note: taking False path at: if (!(tail = PyDict_GetItem(dict, PySTRtail))) { meld3/cmeld3.c:151:37: note: reaching: if (!(structure = PyDict_GetItem(dict, PySTRstructure))) { meld3/cmeld3.c:151:8: note: when treating unknown struct PyObject * from meld3/cmeld3.c:8 as non-NULL at: if (!(structure = PyDict_GetItem(dict, PySTRstructure))) { meld3/cmeld3.c:151:8: note: when PyDict_GetItem() succeeds at: if (!(structure = PyDict_GetItem(dict, PySTRstructure))) { meld3/cmeld3.c:151:8: note: taking False path at: if (!(structure = PyDict_GetItem(dict, PySTRstructure))) { meld3/cmeld3.c:155:5: note: reaching: Py_DECREF(dict); meld3/cmeld3.c:155:5: note: when taking True path at: Py_DECREF(dict); meld3/cmeld3.c:157:8: note: reaching: if (!(newdict = PyDict_New())) return NULL; meld3/cmeld3.c:157:8: note: when PyDict_New() succeeds at: if (!(newdict = PyDict_New())) return NULL; meld3/cmeld3.c:157:8: note: taking False path at: if (!(newdict = PyDict_New())) return NULL; meld3/cmeld3.c:158:8: note: reaching: if (!(newchildren = PyList_New(0))) return NULL; meld3/cmeld3.c:158:8: note: when PyList_New() succeeds at: if (!(newchildren = PyList_New(0))) return NULL; meld3/cmeld3.c:158:8: note: taking False path at: if (!(newchildren = PyList_New(0))) return NULL; meld3/cmeld3.c:160:17: note: reaching: attrib_copy = PyDict_Copy(attrib); meld3/cmeld3.c:160:17: note: when PyDict_Copy() succeeds at: attrib_copy = PyDict_Copy(attrib); meld3/cmeld3.c:162:19: note: when PyDict_SetItem() succeeds at: PyDict_SetItem(newdict, PySTR_children, newchildren); meld3/cmeld3.c:163:5: note: taking True path at: Py_DECREF(newchildren); meld3/cmeld3.c:164:19: note: reaching: PyDict_SetItem(newdict, PySTRattrib, attrib_copy); meld3/cmeld3.c:164:19: note: when PyDict_SetItem() succeeds at: PyDict_SetItem(newdict, PySTRattrib, attrib_copy); meld3/cmeld3.c:165:5: note: taking True path at: Py_DECREF(attrib_copy); meld3/cmeld3.c:166:19: note: reaching: PyDict_SetItem(newdict, PySTRtext, text); meld3/cmeld3.c:166:19: note: when PyDict_SetItem() succeeds at: PyDict_SetItem(newdict, PySTRtext, text); meld3/cmeld3.c:167:19: note: when PyDict_SetItem() succeeds at: PyDict_SetItem(newdict, PySTRtail, tail); meld3/cmeld3.c:168:19: note: when PyDict_SetItem() succeeds at: PyDict_SetItem(newdict, PySTRtag, tag); meld3/cmeld3.c:169:19: note: when PyDict_SetItem() succeeds at: PyDict_SetItem(newdict, PySTRstructure, structure); meld3/cmeld3.c:170:19: note: when treating unknown struct PyObject * from meld3/cmeld3.c:7 as non-NULL at: PyDict_SetItem(newdict, PySTRparent, parent); meld3/cmeld3.c:170:19: note: when PyDict_SetItem() succeeds at: PyDict_SetItem(newdict, PySTRparent, parent); meld3/cmeld3.c:172:8: note: when PyInstance_NewRaw() succeeds at: if (!(element = PyInstance_NewRaw(klass, newdict))) return NULL; meld3/cmeld3.c:172:8: note: taking False path at: if (!(element = PyInstance_NewRaw(klass, newdict))) return NULL; meld3/cmeld3.c:173:5: note: reaching: Py_DECREF(newdict); meld3/cmeld3.c:173:5: note: when taking True path at: Py_DECREF(newdict); meld3/cmeld3.c:174:5: note: reaching: Py_DECREF(klass); meld3/cmeld3.c:174:5: note: when taking True path at: Py_DECREF(klass); meld3/cmeld3.c:178:16: note: reaching: if (parent != Py_None) { meld3/cmeld3.c:178:8: note: taking True path at: if (parent != Py_None) { meld3/cmeld3.c:179:41: note: reaching: if (!(pchildren=PyObject_GetAttr(parent, PySTR_children))) return NULL; meld3/cmeld3.c:179:12: note: when PyObject_GetAttr() succeeds at: if (!(pchildren=PyObject_GetAttr(parent, PySTR_children))) return NULL; meld3/cmeld3.c:179:12: note: ob_refcnt is now refs: 1 + N where N >= 0 meld3/cmeld3.c:179:12: note: taking False path at: if (!(pchildren=PyObject_GetAttr(parent, PySTR_children))) return NULL; meld3/cmeld3.c:180:19: note: reaching: if (PyList_Append(pchildren, element)) return NULL; meld3/cmeld3.c:180:19: note: when treating ob_size as 0 at: if (PyList_Append(pchildren, element)) return NULL; meld3/cmeld3.c:180:19: note: when PyList_Append() fails at: if (PyList_Append(pchildren, element)) return NULL; meld3/cmeld3.c:180:5: note: taking True path at: if (PyList_Append(pchildren, element)) return NULL; meld3/cmeld3.c:180:41: note: reaching: if (PyList_Append(pchildren, element)) return NULL; meld3/cmeld3.c:193:1: note: returning meld3/cmeld3.c:118:1: note: graphical error report for function 'bfclonehandler' written out to 'build/temp.linux-x86_64-2.7/meld3/cmeld3.c.bfclonehandler-refcount-errors.html' meld3/cmeld3.c: In function 'bfclone': meld3/cmeld3.c:15:1: note: this function is too complicated for the reference-count checker to fully analyze: not all paths were analyzed meld3/cmeld3.c:114:1: warning: ob_refcnt of return value is 1 too low [enabled by default] meld3/cmeld3.c:114:1: note: was expecting final ob_refcnt to be N + 1 (for some unknown N) meld3/cmeld3.c:114:1: note: due to object being referenced by: return value meld3/cmeld3.c:114:1: note: but final ob_refcnt is N + 0 meld3/cmeld3.c:18:8: note: when considering range: 1 <= value <= 0x2000000 at: if (!(PyList_Check(nodes))) { meld3/cmeld3.c:18:8: note: taking False path at: if (!(PyList_Check(nodes))) { meld3/cmeld3.c:22:22: note: reaching: len = PyList_Size(nodes); meld3/cmeld3.c:22:22: note: when PyList_Size() returns ob_size at: len = PyList_Size(nodes); meld3/cmeld3.c:24:8: note: when considering range: 0 <= value <= 0x7fffffff at: if (len < 0) { meld3/cmeld3.c:24:8: note: taking False path at: if (len < 0) { meld3/cmeld3.c:29:8: note: reaching: if (!(L = PyList_New(0))) return NULL; meld3/cmeld3.c:29:8: note: when PyList_New() succeeds at: if (!(L = PyList_New(0))) return NULL; meld3/cmeld3.c:29:8: note: taking False path at: if (!(L = PyList_New(0))) return NULL; meld3/cmeld3.c:31:12: note: reaching: for (i = 0; i < len; i++) { meld3/cmeld3.c:31:5: note: when considering range: 1 <= len <= 0x7fffffff at: for (i = 0; i < len; i++) { meld3/cmeld3.c:31:5: note: taking True path at: for (i = 0; i < len; i++) { meld3/cmeld3.c:35:29: note: reaching: if (!(node = PyList_GetItem(nodes, i))) { meld3/cmeld3.c:35:5: note: taking False path at: if (!(node = PyList_GetItem(nodes, i))) { meld3/cmeld3.c:53:32: note: reaching: if (!(klass = PyObject_GetAttr(node, PySTR__class__))) return NULL; meld3/cmeld3.c:53:5: note: when treating unknown struct PyObject * from meld3/cmeld3.c:6 as non-NULL at: if (!(klass = PyObject_GetAttr(node, PySTR__class__))) return NULL; meld3/cmeld3.c:53:5: note: when PyObject_GetAttr() succeeds at: if (!(klass = PyObject_GetAttr(node, PySTR__class__))) return NULL; meld3/cmeld3.c:53:5: note: taking False path at: if (!(klass = PyObject_GetAttr(node, PySTR__class__))) return NULL; meld3/cmeld3.c:54:31: note: reaching: if (!(dict = PyObject_GetAttr(node, PySTR__dict__))) return NULL; meld3/cmeld3.c:54:5: note: when treating unknown struct PyObject * from meld3/cmeld3.c:6 as non-NULL at: if (!(dict = PyObject_GetAttr(node, PySTR__dict__))) return NULL; meld3/cmeld3.c:54:5: note: when PyObject_GetAttr() succeeds at: if (!(dict = PyObject_GetAttr(node, PySTR__dict__))) return NULL; meld3/cmeld3.c:54:5: note: taking False path at: if (!(dict = PyObject_GetAttr(node, PySTR__dict__))) return NULL; meld3/cmeld3.c:56:33: note: reaching: if (!(children = PyDict_GetItem(dict, PySTR_children))) return NULL; meld3/cmeld3.c:56:5: note: when treating unknown struct PyObject * from meld3/cmeld3.c:6 as non-NULL at: if (!(children = PyDict_GetItem(dict, PySTR_children))) return NULL; meld3/cmeld3.c:56:5: note: when PyDict_GetItem() succeeds at: if (!(children = PyDict_GetItem(dict, PySTR_children))) return NULL; meld3/cmeld3.c:56:5: note: taking False path at: if (!(children = PyDict_GetItem(dict, PySTR_children))) return NULL; meld3/cmeld3.c:57:28: note: reaching: if (!(tag = PyDict_GetItem(dict, PySTRtag))) return NULL; meld3/cmeld3.c:57:5: note: when treating unknown struct PyObject * from meld3/cmeld3.c:8 as non-NULL at: if (!(tag = PyDict_GetItem(dict, PySTRtag))) return NULL; meld3/cmeld3.c:57:5: note: when PyDict_GetItem() succeeds at: if (!(tag = PyDict_GetItem(dict, PySTRtag))) return NULL; meld3/cmeld3.c:57:5: note: taking False path at: if (!(tag = PyDict_GetItem(dict, PySTRtag))) return NULL; meld3/cmeld3.c:58:31: note: reaching: if (!(attrib = PyDict_GetItem(dict, PySTRattrib))) return NULL; meld3/cmeld3.c:58:5: note: when treating unknown struct PyObject * from meld3/cmeld3.c:7 as non-NULL at: if (!(attrib = PyDict_GetItem(dict, PySTRattrib))) return NULL; meld3/cmeld3.c:58:5: note: when PyDict_GetItem() succeeds at: if (!(attrib = PyDict_GetItem(dict, PySTRattrib))) return NULL; meld3/cmeld3.c:58:5: note: taking False path at: if (!(attrib = PyDict_GetItem(dict, PySTRattrib))) return NULL; meld3/cmeld3.c:60:29: note: reaching: if (!(text = PyDict_GetItem(dict, PySTRtext))) { meld3/cmeld3.c:60:5: note: when treating unknown struct PyObject * from meld3/cmeld3.c:8 as non-NULL at: if (!(text = PyDict_GetItem(dict, PySTRtext))) { meld3/cmeld3.c:60:5: note: when PyDict_GetItem() succeeds at: if (!(text = PyDict_GetItem(dict, PySTRtext))) { meld3/cmeld3.c:60:5: note: taking False path at: if (!(text = PyDict_GetItem(dict, PySTRtext))) { meld3/cmeld3.c:63:29: note: reaching: if (!(tail = PyDict_GetItem(dict, PySTRtail))) { meld3/cmeld3.c:63:5: note: when treating unknown struct PyObject * from meld3/cmeld3.c:8 as non-NULL at: if (!(tail = PyDict_GetItem(dict, PySTRtail))) { meld3/cmeld3.c:63:5: note: when PyDict_GetItem() succeeds at: if (!(tail = PyDict_GetItem(dict, PySTRtail))) { meld3/cmeld3.c:63:5: note: taking False path at: if (!(tail = PyDict_GetItem(dict, PySTRtail))) { meld3/cmeld3.c:66:34: note: reaching: if (!(structure = PyDict_GetItem(dict, PySTRstructure))) { meld3/cmeld3.c:66:5: note: when treating unknown struct PyObject * from meld3/cmeld3.c:8 as non-NULL at: if (!(structure = PyDict_GetItem(dict, PySTRstructure))) { meld3/cmeld3.c:66:5: note: when PyDict_GetItem() succeeds at: if (!(structure = PyDict_GetItem(dict, PySTRstructure))) { meld3/cmeld3.c:66:5: note: taking False path at: if (!(structure = PyDict_GetItem(dict, PySTRstructure))) { meld3/cmeld3.c:69:2: note: reaching: Py_DECREF(dict); meld3/cmeld3.c:69:2: note: when taking True path at: Py_DECREF(dict); meld3/cmeld3.c:71:5: note: reaching: if (!(newdict = PyDict_New())) return NULL; meld3/cmeld3.c:71:5: note: when PyDict_New() succeeds at: if (!(newdict = PyDict_New())) return NULL; meld3/cmeld3.c:71:5: note: taking False path at: if (!(newdict = PyDict_New())) return NULL; meld3/cmeld3.c:72:5: note: reaching: if (!(newchildren = PyList_New(0))) return NULL; meld3/cmeld3.c:72:5: note: when PyList_New() succeeds at: if (!(newchildren = PyList_New(0))) return NULL; meld3/cmeld3.c:72:5: note: taking False path at: if (!(newchildren = PyList_New(0))) return NULL; meld3/cmeld3.c:74:14: note: reaching: attrib_copy = PyDict_Copy(attrib); meld3/cmeld3.c:74:14: note: when PyDict_Copy() succeeds at: attrib_copy = PyDict_Copy(attrib); meld3/cmeld3.c:76:16: note: when PyDict_SetItem() succeeds at: PyDict_SetItem(newdict, PySTR_children, newchildren); meld3/cmeld3.c:77:9: note: taking True path at: Py_DECREF(newchildren); meld3/cmeld3.c:78:16: note: reaching: PyDict_SetItem(newdict, PySTRattrib, attrib_copy); meld3/cmeld3.c:78:16: note: when PyDict_SetItem() succeeds at: PyDict_SetItem(newdict, PySTRattrib, attrib_copy); meld3/cmeld3.c:79:9: note: taking True path at: Py_DECREF(attrib_copy); meld3/cmeld3.c:80:16: note: reaching: PyDict_SetItem(newdict, PySTRtext, text); meld3/cmeld3.c:80:16: note: when PyDict_SetItem() succeeds at: PyDict_SetItem(newdict, PySTRtext, text); meld3/cmeld3.c:81:16: note: when PyDict_SetItem() succeeds at: PyDict_SetItem(newdict, PySTRtail, tail); meld3/cmeld3.c:82:16: note: when PyDict_SetItem() succeeds at: PyDict_SetItem(newdict, PySTRtag, tag); meld3/cmeld3.c:83:16: note: when PyDict_SetItem() succeeds at: PyDict_SetItem(newdict, PySTRstructure, structure); meld3/cmeld3.c:84:16: note: when treating unknown struct PyObject * from meld3/cmeld3.c:7 as non-NULL at: PyDict_SetItem(newdict, PySTRparent, parent); meld3/cmeld3.c:84:16: note: when PyDict_SetItem() succeeds at: PyDict_SetItem(newdict, PySTRparent, parent); meld3/cmeld3.c:84:16: note: ob_refcnt is now refs: 0 + N where N >= 2 meld3/cmeld3.c:86:5: note: when PyInstance_NewRaw() succeeds at: if (!(element = PyInstance_NewRaw(klass, newdict))) { meld3/cmeld3.c:86:5: note: taking False path at: if (!(element = PyInstance_NewRaw(klass, newdict))) { meld3/cmeld3.c:90:9: note: reaching: Py_DECREF(newdict); meld3/cmeld3.c:90:9: note: when taking True path at: Py_DECREF(newdict); meld3/cmeld3.c:91:2: note: reaching: Py_DECREF(klass); meld3/cmeld3.c:91:2: note: when taking True path at: Py_DECREF(klass); meld3/cmeld3.c:93:19: note: reaching: if (PyList_Append(L, element)) { meld3/cmeld3.c:93:19: note: when PyList_Append() succeeds at: if (PyList_Append(L, element)) { meld3/cmeld3.c:93:5: note: taking False path at: if (PyList_Append(L, element)) { meld3/cmeld3.c:96:9: note: reaching: Py_DECREF(element); meld3/cmeld3.c:96:9: note: taking True path at: Py_DECREF(element); meld3/cmeld3.c:98:7: note: reaching: if (!PyList_Check(children)) return NULL; meld3/cmeld3.c:98:5: note: when considering range: 1 <= value <= 0x2000000 at: if (!PyList_Check(children)) return NULL; meld3/cmeld3.c:98:5: note: taking False path at: if (!PyList_Check(children)) return NULL; meld3/cmeld3.c:100:30: note: reaching: if ((childsize = PyList_Size(children)) < 0) { meld3/cmeld3.c:100:30: note: when PyList_Size() returns ob_size at: if ((childsize = PyList_Size(children)) < 0) { meld3/cmeld3.c:100:5: note: when considering range: 0 <= value <= 0x7fffffff at: if ((childsize = PyList_Size(children)) < 0) { meld3/cmeld3.c:100:5: note: taking False path at: if ((childsize = PyList_Size(children)) < 0) { meld3/cmeld3.c:104:9: note: reaching: if (childsize > 0) { meld3/cmeld3.c:104:9: note: when considering range: 1 <= value <= 0x7fffffff at: if (childsize > 0) { meld3/cmeld3.c:104:9: note: taking True path at: if (childsize > 0) { meld3/cmeld3.c:105:10: note: reaching: bfclone(children, element); meld3/cmeld3.c:105:10: note: when bfclone() fails at: bfclone(children, element); meld3/cmeld3.c:31:27: note: reaching: for (i = 0; i < len; i++) { meld3/cmeld3.c:31:5: note: when considering len == (int)1 from meld3/cmeld3.c:22 at: for (i = 0; i < len; i++) { meld3/cmeld3.c:31:5: note: taking False path at: for (i = 0; i < len; i++) { meld3/cmeld3.c:110:25: note: reaching: if (PyObject_SetAttr(parent, PySTR_children, L)) return NULL; meld3/cmeld3.c:110:25: note: when PyObject_SetAttr() succeeds at: if (PyObject_SetAttr(parent, PySTR_children, L)) return NULL; meld3/cmeld3.c:110:8: note: taking False path at: if (PyObject_SetAttr(parent, PySTR_children, L)) return NULL; meld3/cmeld3.c:111:5: note: reaching: Py_DECREF(L); meld3/cmeld3.c:111:5: note: when taking True path at: Py_DECREF(L); meld3/cmeld3.c:112:5: note: reaching: return parent; meld3/cmeld3.c:114:1: note: returning meld3/cmeld3.c:114:1: note: found 7 similar trace(s) to this meld3/cmeld3.c:114:1: warning: ob_refcnt of new ref from (unknown) bfclone is 1 too high [enabled by default] meld3/cmeld3.c:114:1: note: was expecting final ob_refcnt to be N + 0 (for some unknown N) meld3/cmeld3.c:114:1: note: but final ob_refcnt is N + 1 meld3/cmeld3.c:105:10: note: new ref from (unknown) bfclone allocated at: bfclone(children, element); meld3/cmeld3.c:18:8: note: when considering range: 1 <= value <= 0x2000000 at: if (!(PyList_Check(nodes))) { meld3/cmeld3.c:18:8: note: taking False path at: if (!(PyList_Check(nodes))) { meld3/cmeld3.c:22:22: note: reaching: len = PyList_Size(nodes); meld3/cmeld3.c:22:22: note: when PyList_Size() returns ob_size at: len = PyList_Size(nodes); meld3/cmeld3.c:24:8: note: when considering range: 0 <= value <= 0x7fffffff at: if (len < 0) { meld3/cmeld3.c:24:8: note: taking False path at: if (len < 0) { meld3/cmeld3.c:29:8: note: reaching: if (!(L = PyList_New(0))) return NULL; meld3/cmeld3.c:29:8: note: when PyList_New() succeeds at: if (!(L = PyList_New(0))) return NULL; meld3/cmeld3.c:29:8: note: taking False path at: if (!(L = PyList_New(0))) return NULL; meld3/cmeld3.c:31:12: note: reaching: for (i = 0; i < len; i++) { meld3/cmeld3.c:31:5: note: when considering range: 1 <= len <= 0x7fffffff at: for (i = 0; i < len; i++) { meld3/cmeld3.c:31:5: note: taking True path at: for (i = 0; i < len; i++) { meld3/cmeld3.c:35:29: note: reaching: if (!(node = PyList_GetItem(nodes, i))) { meld3/cmeld3.c:35:5: note: taking False path at: if (!(node = PyList_GetItem(nodes, i))) { meld3/cmeld3.c:53:32: note: reaching: if (!(klass = PyObject_GetAttr(node, PySTR__class__))) return NULL; meld3/cmeld3.c:53:5: note: when treating unknown struct PyObject * from meld3/cmeld3.c:6 as non-NULL at: if (!(klass = PyObject_GetAttr(node, PySTR__class__))) return NULL; meld3/cmeld3.c:53:5: note: when PyObject_GetAttr() succeeds at: if (!(klass = PyObject_GetAttr(node, PySTR__class__))) return NULL; meld3/cmeld3.c:53:5: note: taking False path at: if (!(klass = PyObject_GetAttr(node, PySTR__class__))) return NULL; meld3/cmeld3.c:54:31: note: reaching: if (!(dict = PyObject_GetAttr(node, PySTR__dict__))) return NULL; meld3/cmeld3.c:54:5: note: when treating unknown struct PyObject * from meld3/cmeld3.c:6 as non-NULL at: if (!(dict = PyObject_GetAttr(node, PySTR__dict__))) return NULL; meld3/cmeld3.c:54:5: note: when PyObject_GetAttr() succeeds at: if (!(dict = PyObject_GetAttr(node, PySTR__dict__))) return NULL; meld3/cmeld3.c:54:5: note: taking False path at: if (!(dict = PyObject_GetAttr(node, PySTR__dict__))) return NULL; meld3/cmeld3.c:56:33: note: reaching: if (!(children = PyDict_GetItem(dict, PySTR_children))) return NULL; meld3/cmeld3.c:56:5: note: when treating unknown struct PyObject * from meld3/cmeld3.c:6 as non-NULL at: if (!(children = PyDict_GetItem(dict, PySTR_children))) return NULL; meld3/cmeld3.c:56:5: note: when PyDict_GetItem() succeeds at: if (!(children = PyDict_GetItem(dict, PySTR_children))) return NULL; meld3/cmeld3.c:56:5: note: taking False path at: if (!(children = PyDict_GetItem(dict, PySTR_children))) return NULL; meld3/cmeld3.c:57:28: note: reaching: if (!(tag = PyDict_GetItem(dict, PySTRtag))) return NULL; meld3/cmeld3.c:57:5: note: when treating unknown struct PyObject * from meld3/cmeld3.c:8 as non-NULL at: if (!(tag = PyDict_GetItem(dict, PySTRtag))) return NULL; meld3/cmeld3.c:57:5: note: when PyDict_GetItem() succeeds at: if (!(tag = PyDict_GetItem(dict, PySTRtag))) return NULL; meld3/cmeld3.c:57:5: note: taking False path at: if (!(tag = PyDict_GetItem(dict, PySTRtag))) return NULL; meld3/cmeld3.c:58:31: note: reaching: if (!(attrib = PyDict_GetItem(dict, PySTRattrib))) return NULL; meld3/cmeld3.c:58:5: note: when treating unknown struct PyObject * from meld3/cmeld3.c:7 as non-NULL at: if (!(attrib = PyDict_GetItem(dict, PySTRattrib))) return NULL; meld3/cmeld3.c:58:5: note: when PyDict_GetItem() succeeds at: if (!(attrib = PyDict_GetItem(dict, PySTRattrib))) return NULL; meld3/cmeld3.c:58:5: note: taking False path at: if (!(attrib = PyDict_GetItem(dict, PySTRattrib))) return NULL; meld3/cmeld3.c:60:29: note: reaching: if (!(text = PyDict_GetItem(dict, PySTRtext))) { meld3/cmeld3.c:60:5: note: when treating unknown struct PyObject * from meld3/cmeld3.c:8 as non-NULL at: if (!(text = PyDict_GetItem(dict, PySTRtext))) { meld3/cmeld3.c:60:5: note: when PyDict_GetItem() succeeds at: if (!(text = PyDict_GetItem(dict, PySTRtext))) { meld3/cmeld3.c:60:5: note: taking False path at: if (!(text = PyDict_GetItem(dict, PySTRtext))) { meld3/cmeld3.c:63:29: note: reaching: if (!(tail = PyDict_GetItem(dict, PySTRtail))) { meld3/cmeld3.c:63:5: note: when treating unknown struct PyObject * from meld3/cmeld3.c:8 as non-NULL at: if (!(tail = PyDict_GetItem(dict, PySTRtail))) { meld3/cmeld3.c:63:5: note: when PyDict_GetItem() succeeds at: if (!(tail = PyDict_GetItem(dict, PySTRtail))) { meld3/cmeld3.c:63:5: note: taking False path at: if (!(tail = PyDict_GetItem(dict, PySTRtail))) { meld3/cmeld3.c:66:34: note: reaching: if (!(structure = PyDict_GetItem(dict, PySTRstructure))) { meld3/cmeld3.c:66:5: note: when treating unknown struct PyObject * from meld3/cmeld3.c:8 as non-NULL at: if (!(structure = PyDict_GetItem(dict, PySTRstructure))) { meld3/cmeld3.c:66:5: note: when PyDict_GetItem() succeeds at: if (!(structure = PyDict_GetItem(dict, PySTRstructure))) { meld3/cmeld3.c:66:5: note: taking False path at: if (!(structure = PyDict_GetItem(dict, PySTRstructure))) { meld3/cmeld3.c:69:2: note: reaching: Py_DECREF(dict); meld3/cmeld3.c:69:2: note: when taking True path at: Py_DECREF(dict); meld3/cmeld3.c:71:5: note: reaching: if (!(newdict = PyDict_New())) return NULL; meld3/cmeld3.c:71:5: note: when PyDict_New() succeeds at: if (!(newdict = PyDict_New())) return NULL; meld3/cmeld3.c:71:5: note: taking False path at: if (!(newdict = PyDict_New())) return NULL; meld3/cmeld3.c:72:5: note: reaching: if (!(newchildren = PyList_New(0))) return NULL; meld3/cmeld3.c:72:5: note: when PyList_New() succeeds at: if (!(newchildren = PyList_New(0))) return NULL; meld3/cmeld3.c:72:5: note: taking False path at: if (!(newchildren = PyList_New(0))) return NULL; meld3/cmeld3.c:74:14: note: reaching: attrib_copy = PyDict_Copy(attrib); meld3/cmeld3.c:74:14: note: when PyDict_Copy() succeeds at: attrib_copy = PyDict_Copy(attrib); meld3/cmeld3.c:76:16: note: when PyDict_SetItem() succeeds at: PyDict_SetItem(newdict, PySTR_children, newchildren); meld3/cmeld3.c:77:9: note: taking True path at: Py_DECREF(newchildren); meld3/cmeld3.c:78:16: note: reaching: PyDict_SetItem(newdict, PySTRattrib, attrib_copy); meld3/cmeld3.c:78:16: note: when PyDict_SetItem() succeeds at: PyDict_SetItem(newdict, PySTRattrib, attrib_copy); meld3/cmeld3.c:79:9: note: taking True path at: Py_DECREF(attrib_copy); meld3/cmeld3.c:80:16: note: reaching: PyDict_SetItem(newdict, PySTRtext, text); meld3/cmeld3.c:80:16: note: when PyDict_SetItem() succeeds at: PyDict_SetItem(newdict, PySTRtext, text); meld3/cmeld3.c:81:16: note: when PyDict_SetItem() succeeds at: PyDict_SetItem(newdict, PySTRtail, tail); meld3/cmeld3.c:82:16: note: when PyDict_SetItem() succeeds at: PyDict_SetItem(newdict, PySTRtag, tag); meld3/cmeld3.c:83:16: note: when PyDict_SetItem() succeeds at: PyDict_SetItem(newdict, PySTRstructure, structure); meld3/cmeld3.c:84:16: note: when treating unknown struct PyObject * from meld3/cmeld3.c:7 as non-NULL at: PyDict_SetItem(newdict, PySTRparent, parent); meld3/cmeld3.c:84:16: note: when PyDict_SetItem() succeeds at: PyDict_SetItem(newdict, PySTRparent, parent); meld3/cmeld3.c:86:5: note: when PyInstance_NewRaw() succeeds at: if (!(element = PyInstance_NewRaw(klass, newdict))) { meld3/cmeld3.c:86:5: note: taking False path at: if (!(element = PyInstance_NewRaw(klass, newdict))) { meld3/cmeld3.c:90:9: note: reaching: Py_DECREF(newdict); meld3/cmeld3.c:90:9: note: when taking True path at: Py_DECREF(newdict); meld3/cmeld3.c:91:2: note: reaching: Py_DECREF(klass); meld3/cmeld3.c:91:2: note: when taking True path at: Py_DECREF(klass); meld3/cmeld3.c:93:19: note: reaching: if (PyList_Append(L, element)) { meld3/cmeld3.c:93:19: note: when PyList_Append() succeeds at: if (PyList_Append(L, element)) { meld3/cmeld3.c:93:5: note: taking False path at: if (PyList_Append(L, element)) { meld3/cmeld3.c:96:9: note: reaching: Py_DECREF(element); meld3/cmeld3.c:96:9: note: taking True path at: Py_DECREF(element); meld3/cmeld3.c:98:7: note: reaching: if (!PyList_Check(children)) return NULL; meld3/cmeld3.c:98:5: note: when considering range: 1 <= value <= 0x2000000 at: if (!PyList_Check(children)) return NULL; meld3/cmeld3.c:98:5: note: taking False path at: if (!PyList_Check(children)) return NULL; meld3/cmeld3.c:100:30: note: reaching: if ((childsize = PyList_Size(children)) < 0) { meld3/cmeld3.c:100:30: note: when PyList_Size() returns ob_size at: if ((childsize = PyList_Size(children)) < 0) { meld3/cmeld3.c:100:5: note: when considering range: 0 <= value <= 0x7fffffff at: if ((childsize = PyList_Size(children)) < 0) { meld3/cmeld3.c:100:5: note: taking False path at: if ((childsize = PyList_Size(children)) < 0) { meld3/cmeld3.c:104:9: note: reaching: if (childsize > 0) { meld3/cmeld3.c:104:9: note: when considering range: 1 <= value <= 0x7fffffff at: if (childsize > 0) { meld3/cmeld3.c:104:9: note: taking True path at: if (childsize > 0) { meld3/cmeld3.c:105:10: note: reaching: bfclone(children, element); meld3/cmeld3.c:105:10: note: when bfclone() succeeds at: bfclone(children, element); meld3/cmeld3.c:31:27: note: reaching: for (i = 0; i < len; i++) { meld3/cmeld3.c:105:10: note: ob_refcnt is now refs: 1 + N where N >= 0 meld3/cmeld3.c:31:5: note: when considering len == (int)1 from meld3/cmeld3.c:22 at: for (i = 0; i < len; i++) { meld3/cmeld3.c:31:5: note: taking False path at: for (i = 0; i < len; i++) { meld3/cmeld3.c:110:25: note: reaching: if (PyObject_SetAttr(parent, PySTR_children, L)) return NULL; meld3/cmeld3.c:110:25: note: when PyObject_SetAttr() succeeds at: if (PyObject_SetAttr(parent, PySTR_children, L)) return NULL; meld3/cmeld3.c:110:8: note: taking False path at: if (PyObject_SetAttr(parent, PySTR_children, L)) return NULL; meld3/cmeld3.c:111:5: note: reaching: Py_DECREF(L); meld3/cmeld3.c:111:5: note: when taking True path at: Py_DECREF(L); meld3/cmeld3.c:112:5: note: reaching: return parent; meld3/cmeld3.c:114:1: note: returning meld3/cmeld3.c:114:1: note: found 2 similar trace(s) to this meld3/cmeld3.c:114:1: warning: ob_refcnt of '*L' is 1 too high [enabled by default] meld3/cmeld3.c:114:1: note: was expecting final ob_refcnt to be N + 0 (for some unknown N) meld3/cmeld3.c:114:1: note: but final ob_refcnt is N + 1 meld3/cmeld3.c:29:8: note: PyListObject allocated at: if (!(L = PyList_New(0))) return NULL; meld3/cmeld3.c:18:8: note: when considering range: 1 <= value <= 0x2000000 at: if (!(PyList_Check(nodes))) { meld3/cmeld3.c:18:8: note: taking False path at: if (!(PyList_Check(nodes))) { meld3/cmeld3.c:22:22: note: reaching: len = PyList_Size(nodes); meld3/cmeld3.c:22:22: note: when PyList_Size() returns ob_size at: len = PyList_Size(nodes); meld3/cmeld3.c:24:8: note: when considering range: 0 <= value <= 0x7fffffff at: if (len < 0) { meld3/cmeld3.c:24:8: note: taking False path at: if (len < 0) { meld3/cmeld3.c:29:8: note: reaching: if (!(L = PyList_New(0))) return NULL; meld3/cmeld3.c:29:8: note: when PyList_New() succeeds at: if (!(L = PyList_New(0))) return NULL; meld3/cmeld3.c:29:8: note: ob_refcnt is now refs: 1 + N where N >= 0 meld3/cmeld3.c:29:8: note: taking False path at: if (!(L = PyList_New(0))) return NULL; meld3/cmeld3.c:31:12: note: reaching: for (i = 0; i < len; i++) { meld3/cmeld3.c:31:5: note: when considering range: 1 <= len <= 0x7fffffff at: for (i = 0; i < len; i++) { meld3/cmeld3.c:31:5: note: taking True path at: for (i = 0; i < len; i++) { meld3/cmeld3.c:35:29: note: reaching: if (!(node = PyList_GetItem(nodes, i))) { meld3/cmeld3.c:35:5: note: taking False path at: if (!(node = PyList_GetItem(nodes, i))) { meld3/cmeld3.c:53:32: note: reaching: if (!(klass = PyObject_GetAttr(node, PySTR__class__))) return NULL; meld3/cmeld3.c:53:5: note: when treating unknown struct PyObject * from meld3/cmeld3.c:6 as non-NULL at: if (!(klass = PyObject_GetAttr(node, PySTR__class__))) return NULL; meld3/cmeld3.c:53:5: note: when PyObject_GetAttr() succeeds at: if (!(klass = PyObject_GetAttr(node, PySTR__class__))) return NULL; meld3/cmeld3.c:53:5: note: taking False path at: if (!(klass = PyObject_GetAttr(node, PySTR__class__))) return NULL; meld3/cmeld3.c:54:31: note: reaching: if (!(dict = PyObject_GetAttr(node, PySTR__dict__))) return NULL; meld3/cmeld3.c:54:5: note: when treating unknown struct PyObject * from meld3/cmeld3.c:6 as non-NULL at: if (!(dict = PyObject_GetAttr(node, PySTR__dict__))) return NULL; meld3/cmeld3.c:54:5: note: when PyObject_GetAttr() succeeds at: if (!(dict = PyObject_GetAttr(node, PySTR__dict__))) return NULL; meld3/cmeld3.c:54:5: note: taking False path at: if (!(dict = PyObject_GetAttr(node, PySTR__dict__))) return NULL; meld3/cmeld3.c:56:33: note: reaching: if (!(children = PyDict_GetItem(dict, PySTR_children))) return NULL; meld3/cmeld3.c:56:5: note: when treating unknown struct PyObject * from meld3/cmeld3.c:6 as non-NULL at: if (!(children = PyDict_GetItem(dict, PySTR_children))) return NULL; meld3/cmeld3.c:56:5: note: when PyDict_GetItem() succeeds at: if (!(children = PyDict_GetItem(dict, PySTR_children))) return NULL; meld3/cmeld3.c:56:5: note: taking False path at: if (!(children = PyDict_GetItem(dict, PySTR_children))) return NULL; meld3/cmeld3.c:57:28: note: reaching: if (!(tag = PyDict_GetItem(dict, PySTRtag))) return NULL; meld3/cmeld3.c:57:5: note: when treating unknown struct PyObject * from meld3/cmeld3.c:8 as non-NULL at: if (!(tag = PyDict_GetItem(dict, PySTRtag))) return NULL; meld3/cmeld3.c:57:5: note: when PyDict_GetItem() succeeds at: if (!(tag = PyDict_GetItem(dict, PySTRtag))) return NULL; meld3/cmeld3.c:57:5: note: taking False path at: if (!(tag = PyDict_GetItem(dict, PySTRtag))) return NULL; meld3/cmeld3.c:58:31: note: reaching: if (!(attrib = PyDict_GetItem(dict, PySTRattrib))) return NULL; meld3/cmeld3.c:58:5: note: when treating unknown struct PyObject * from meld3/cmeld3.c:7 as non-NULL at: if (!(attrib = PyDict_GetItem(dict, PySTRattrib))) return NULL; meld3/cmeld3.c:58:5: note: when PyDict_GetItem() succeeds at: if (!(attrib = PyDict_GetItem(dict, PySTRattrib))) return NULL; meld3/cmeld3.c:58:5: note: taking False path at: if (!(attrib = PyDict_GetItem(dict, PySTRattrib))) return NULL; meld3/cmeld3.c:60:29: note: reaching: if (!(text = PyDict_GetItem(dict, PySTRtext))) { meld3/cmeld3.c:60:5: note: when treating unknown struct PyObject * from meld3/cmeld3.c:8 as non-NULL at: if (!(text = PyDict_GetItem(dict, PySTRtext))) { meld3/cmeld3.c:60:5: note: when PyDict_GetItem() succeeds at: if (!(text = PyDict_GetItem(dict, PySTRtext))) { meld3/cmeld3.c:60:5: note: taking False path at: if (!(text = PyDict_GetItem(dict, PySTRtext))) { meld3/cmeld3.c:63:29: note: reaching: if (!(tail = PyDict_GetItem(dict, PySTRtail))) { meld3/cmeld3.c:63:5: note: when treating unknown struct PyObject * from meld3/cmeld3.c:8 as non-NULL at: if (!(tail = PyDict_GetItem(dict, PySTRtail))) { meld3/cmeld3.c:63:5: note: when PyDict_GetItem() succeeds at: if (!(tail = PyDict_GetItem(dict, PySTRtail))) { meld3/cmeld3.c:63:5: note: taking False path at: if (!(tail = PyDict_GetItem(dict, PySTRtail))) { meld3/cmeld3.c:66:34: note: reaching: if (!(structure = PyDict_GetItem(dict, PySTRstructure))) { meld3/cmeld3.c:66:5: note: when treating unknown struct PyObject * from meld3/cmeld3.c:8 as non-NULL at: if (!(structure = PyDict_GetItem(dict, PySTRstructure))) { meld3/cmeld3.c:66:5: note: when PyDict_GetItem() succeeds at: if (!(structure = PyDict_GetItem(dict, PySTRstructure))) { meld3/cmeld3.c:66:5: note: taking False path at: if (!(structure = PyDict_GetItem(dict, PySTRstructure))) { meld3/cmeld3.c:69:2: note: reaching: Py_DECREF(dict); meld3/cmeld3.c:69:2: note: when taking True path at: Py_DECREF(dict); meld3/cmeld3.c:71:5: note: reaching: if (!(newdict = PyDict_New())) return NULL; meld3/cmeld3.c:71:5: note: when PyDict_New() succeeds at: if (!(newdict = PyDict_New())) return NULL; meld3/cmeld3.c:71:5: note: taking False path at: if (!(newdict = PyDict_New())) return NULL; meld3/cmeld3.c:72:5: note: reaching: if (!(newchildren = PyList_New(0))) return NULL; meld3/cmeld3.c:72:5: note: when PyList_New() succeeds at: if (!(newchildren = PyList_New(0))) return NULL; meld3/cmeld3.c:72:5: note: taking False path at: if (!(newchildren = PyList_New(0))) return NULL; meld3/cmeld3.c:74:14: note: reaching: attrib_copy = PyDict_Copy(attrib); meld3/cmeld3.c:74:14: note: when PyDict_Copy() succeeds at: attrib_copy = PyDict_Copy(attrib); meld3/cmeld3.c:76:16: note: when PyDict_SetItem() succeeds at: PyDict_SetItem(newdict, PySTR_children, newchildren); meld3/cmeld3.c:77:9: note: taking True path at: Py_DECREF(newchildren); meld3/cmeld3.c:78:16: note: reaching: PyDict_SetItem(newdict, PySTRattrib, attrib_copy); meld3/cmeld3.c:78:16: note: when PyDict_SetItem() succeeds at: PyDict_SetItem(newdict, PySTRattrib, attrib_copy); meld3/cmeld3.c:79:9: note: taking True path at: Py_DECREF(attrib_copy); meld3/cmeld3.c:80:16: note: reaching: PyDict_SetItem(newdict, PySTRtext, text); meld3/cmeld3.c:80:16: note: when PyDict_SetItem() succeeds at: PyDict_SetItem(newdict, PySTRtext, text); meld3/cmeld3.c:81:16: note: when PyDict_SetItem() succeeds at: PyDict_SetItem(newdict, PySTRtail, tail); meld3/cmeld3.c:82:16: note: when PyDict_SetItem() succeeds at: PyDict_SetItem(newdict, PySTRtag, tag); meld3/cmeld3.c:83:16: note: when PyDict_SetItem() succeeds at: PyDict_SetItem(newdict, PySTRstructure, structure); meld3/cmeld3.c:84:16: note: when treating unknown struct PyObject * from meld3/cmeld3.c:7 as non-NULL at: PyDict_SetItem(newdict, PySTRparent, parent); meld3/cmeld3.c:84:16: note: when PyDict_SetItem() succeeds at: PyDict_SetItem(newdict, PySTRparent, parent); meld3/cmeld3.c:86:5: note: when PyInstance_NewRaw() succeeds at: if (!(element = PyInstance_NewRaw(klass, newdict))) { meld3/cmeld3.c:86:5: note: taking False path at: if (!(element = PyInstance_NewRaw(klass, newdict))) { meld3/cmeld3.c:90:9: note: reaching: Py_DECREF(newdict); meld3/cmeld3.c:90:9: note: when taking True path at: Py_DECREF(newdict); meld3/cmeld3.c:91:2: note: reaching: Py_DECREF(klass); meld3/cmeld3.c:91:2: note: when taking True path at: Py_DECREF(klass); meld3/cmeld3.c:93:19: note: reaching: if (PyList_Append(L, element)) { meld3/cmeld3.c:93:19: note: when PyList_Append() succeeds at: if (PyList_Append(L, element)) { meld3/cmeld3.c:93:5: note: taking False path at: if (PyList_Append(L, element)) { meld3/cmeld3.c:96:9: note: reaching: Py_DECREF(element); meld3/cmeld3.c:96:9: note: taking True path at: Py_DECREF(element); meld3/cmeld3.c:98:7: note: reaching: if (!PyList_Check(children)) return NULL; meld3/cmeld3.c:98:5: note: when considering range: 1 <= value <= 0x2000000 at: if (!PyList_Check(children)) return NULL; meld3/cmeld3.c:98:5: note: taking False path at: if (!PyList_Check(children)) return NULL; meld3/cmeld3.c:100:30: note: reaching: if ((childsize = PyList_Size(children)) < 0) { meld3/cmeld3.c:100:30: note: when PyList_Size() returns ob_size at: if ((childsize = PyList_Size(children)) < 0) { meld3/cmeld3.c:100:5: note: when considering range: 0 <= value <= 0x7fffffff at: if ((childsize = PyList_Size(children)) < 0) { meld3/cmeld3.c:100:5: note: taking False path at: if ((childsize = PyList_Size(children)) < 0) { meld3/cmeld3.c:104:9: note: reaching: if (childsize > 0) { meld3/cmeld3.c:104:9: note: when considering range: 1 <= value <= 0x7fffffff at: if (childsize > 0) { meld3/cmeld3.c:104:9: note: taking True path at: if (childsize > 0) { meld3/cmeld3.c:105:10: note: reaching: bfclone(children, element); meld3/cmeld3.c:105:10: note: when bfclone() succeeds at: bfclone(children, element); meld3/cmeld3.c:31:27: note: reaching: for (i = 0; i < len; i++) { meld3/cmeld3.c:31:5: note: when considering len == (int)1 from meld3/cmeld3.c:22 at: for (i = 0; i < len; i++) { meld3/cmeld3.c:31:5: note: taking False path at: for (i = 0; i < len; i++) { meld3/cmeld3.c:110:25: note: reaching: if (PyObject_SetAttr(parent, PySTR_children, L)) return NULL; meld3/cmeld3.c:110:25: note: when PyObject_SetAttr() fails at: if (PyObject_SetAttr(parent, PySTR_children, L)) return NULL; meld3/cmeld3.c:110:8: note: taking True path at: if (PyObject_SetAttr(parent, PySTR_children, L)) return NULL; meld3/cmeld3.c:110:54: note: reaching: if (PyObject_SetAttr(parent, PySTR_children, L)) return NULL; meld3/cmeld3.c:114:1: note: returning meld3/cmeld3.c:114:1: note: found 4 similar trace(s) to this meld3/cmeld3.c:114:1: warning: returning (PyObject*)NULL without setting an exception [enabled by default] meld3/cmeld3.c:18:8: note: when considering range: 1 <= value <= 0x2000000 at: if (!(PyList_Check(nodes))) { meld3/cmeld3.c:18:8: note: taking False path at: if (!(PyList_Check(nodes))) { meld3/cmeld3.c:22:22: note: reaching: len = PyList_Size(nodes); meld3/cmeld3.c:22:22: note: when PyList_Size() returns ob_size at: len = PyList_Size(nodes); meld3/cmeld3.c:24:8: note: when considering range: 0 <= value <= 0x7fffffff at: if (len < 0) { meld3/cmeld3.c:24:8: note: taking False path at: if (len < 0) { meld3/cmeld3.c:29:8: note: reaching: if (!(L = PyList_New(0))) return NULL; meld3/cmeld3.c:29:8: note: when PyList_New() succeeds at: if (!(L = PyList_New(0))) return NULL; meld3/cmeld3.c:29:8: note: taking False path at: if (!(L = PyList_New(0))) return NULL; meld3/cmeld3.c:31:12: note: reaching: for (i = 0; i < len; i++) { meld3/cmeld3.c:31:5: note: when considering range: 1 <= len <= 0x7fffffff at: for (i = 0; i < len; i++) { meld3/cmeld3.c:31:5: note: taking True path at: for (i = 0; i < len; i++) { meld3/cmeld3.c:35:29: note: reaching: if (!(node = PyList_GetItem(nodes, i))) { meld3/cmeld3.c:35:5: note: taking False path at: if (!(node = PyList_GetItem(nodes, i))) { meld3/cmeld3.c:53:32: note: reaching: if (!(klass = PyObject_GetAttr(node, PySTR__class__))) return NULL; meld3/cmeld3.c:53:5: note: when treating unknown struct PyObject * from meld3/cmeld3.c:6 as non-NULL at: if (!(klass = PyObject_GetAttr(node, PySTR__class__))) return NULL; meld3/cmeld3.c:53:5: note: when PyObject_GetAttr() succeeds at: if (!(klass = PyObject_GetAttr(node, PySTR__class__))) return NULL; meld3/cmeld3.c:53:5: note: taking False path at: if (!(klass = PyObject_GetAttr(node, PySTR__class__))) return NULL; meld3/cmeld3.c:54:31: note: reaching: if (!(dict = PyObject_GetAttr(node, PySTR__dict__))) return NULL; meld3/cmeld3.c:54:5: note: when treating unknown struct PyObject * from meld3/cmeld3.c:6 as non-NULL at: if (!(dict = PyObject_GetAttr(node, PySTR__dict__))) return NULL; meld3/cmeld3.c:54:5: note: when PyObject_GetAttr() succeeds at: if (!(dict = PyObject_GetAttr(node, PySTR__dict__))) return NULL; meld3/cmeld3.c:54:5: note: taking False path at: if (!(dict = PyObject_GetAttr(node, PySTR__dict__))) return NULL; meld3/cmeld3.c:56:33: note: reaching: if (!(children = PyDict_GetItem(dict, PySTR_children))) return NULL; meld3/cmeld3.c:56:5: note: when treating unknown struct PyObject * from meld3/cmeld3.c:6 as non-NULL at: if (!(children = PyDict_GetItem(dict, PySTR_children))) return NULL; meld3/cmeld3.c:56:5: note: when PyDict_GetItem() succeeds at: if (!(children = PyDict_GetItem(dict, PySTR_children))) return NULL; meld3/cmeld3.c:56:5: note: taking False path at: if (!(children = PyDict_GetItem(dict, PySTR_children))) return NULL; meld3/cmeld3.c:57:28: note: reaching: if (!(tag = PyDict_GetItem(dict, PySTRtag))) return NULL; meld3/cmeld3.c:57:5: note: when treating unknown struct PyObject * from meld3/cmeld3.c:8 as non-NULL at: if (!(tag = PyDict_GetItem(dict, PySTRtag))) return NULL; meld3/cmeld3.c:57:5: note: when PyDict_GetItem() succeeds at: if (!(tag = PyDict_GetItem(dict, PySTRtag))) return NULL; meld3/cmeld3.c:57:5: note: taking False path at: if (!(tag = PyDict_GetItem(dict, PySTRtag))) return NULL; meld3/cmeld3.c:58:31: note: reaching: if (!(attrib = PyDict_GetItem(dict, PySTRattrib))) return NULL; meld3/cmeld3.c:58:5: note: when treating unknown struct PyObject * from meld3/cmeld3.c:7 as non-NULL at: if (!(attrib = PyDict_GetItem(dict, PySTRattrib))) return NULL; meld3/cmeld3.c:58:5: note: when PyDict_GetItem() succeeds at: if (!(attrib = PyDict_GetItem(dict, PySTRattrib))) return NULL; meld3/cmeld3.c:58:5: note: taking False path at: if (!(attrib = PyDict_GetItem(dict, PySTRattrib))) return NULL; meld3/cmeld3.c:60:29: note: reaching: if (!(text = PyDict_GetItem(dict, PySTRtext))) { meld3/cmeld3.c:60:5: note: when treating unknown struct PyObject * from meld3/cmeld3.c:8 as non-NULL at: if (!(text = PyDict_GetItem(dict, PySTRtext))) { meld3/cmeld3.c:60:5: note: when PyDict_GetItem() succeeds at: if (!(text = PyDict_GetItem(dict, PySTRtext))) { meld3/cmeld3.c:60:5: note: taking False path at: if (!(text = PyDict_GetItem(dict, PySTRtext))) { meld3/cmeld3.c:63:29: note: reaching: if (!(tail = PyDict_GetItem(dict, PySTRtail))) { meld3/cmeld3.c:63:5: note: when treating unknown struct PyObject * from meld3/cmeld3.c:8 as non-NULL at: if (!(tail = PyDict_GetItem(dict, PySTRtail))) { meld3/cmeld3.c:63:5: note: when PyDict_GetItem() succeeds at: if (!(tail = PyDict_GetItem(dict, PySTRtail))) { meld3/cmeld3.c:63:5: note: taking False path at: if (!(tail = PyDict_GetItem(dict, PySTRtail))) { meld3/cmeld3.c:66:34: note: reaching: if (!(structure = PyDict_GetItem(dict, PySTRstructure))) { meld3/cmeld3.c:66:5: note: when treating unknown struct PyObject * from meld3/cmeld3.c:8 as non-NULL at: if (!(structure = PyDict_GetItem(dict, PySTRstructure))) { meld3/cmeld3.c:66:5: note: when PyDict_GetItem() succeeds at: if (!(structure = PyDict_GetItem(dict, PySTRstructure))) { meld3/cmeld3.c:66:5: note: taking False path at: if (!(structure = PyDict_GetItem(dict, PySTRstructure))) { meld3/cmeld3.c:69:2: note: reaching: Py_DECREF(dict); meld3/cmeld3.c:69:2: note: when taking True path at: Py_DECREF(dict); meld3/cmeld3.c:71:5: note: reaching: if (!(newdict = PyDict_New())) return NULL; meld3/cmeld3.c:71:5: note: when PyDict_New() succeeds at: if (!(newdict = PyDict_New())) return NULL; meld3/cmeld3.c:71:5: note: taking False path at: if (!(newdict = PyDict_New())) return NULL; meld3/cmeld3.c:72:5: note: reaching: if (!(newchildren = PyList_New(0))) return NULL; meld3/cmeld3.c:72:5: note: when PyList_New() succeeds at: if (!(newchildren = PyList_New(0))) return NULL; meld3/cmeld3.c:72:5: note: taking False path at: if (!(newchildren = PyList_New(0))) return NULL; meld3/cmeld3.c:74:14: note: reaching: attrib_copy = PyDict_Copy(attrib); meld3/cmeld3.c:74:14: note: when PyDict_Copy() succeeds at: attrib_copy = PyDict_Copy(attrib); meld3/cmeld3.c:76:16: note: when PyDict_SetItem() succeeds at: PyDict_SetItem(newdict, PySTR_children, newchildren); meld3/cmeld3.c:77:9: note: taking True path at: Py_DECREF(newchildren); meld3/cmeld3.c:78:16: note: reaching: PyDict_SetItem(newdict, PySTRattrib, attrib_copy); meld3/cmeld3.c:78:16: note: when PyDict_SetItem() succeeds at: PyDict_SetItem(newdict, PySTRattrib, attrib_copy); meld3/cmeld3.c:79:9: note: taking True path at: Py_DECREF(attrib_copy); meld3/cmeld3.c:80:16: note: reaching: PyDict_SetItem(newdict, PySTRtext, text); meld3/cmeld3.c:80:16: note: when PyDict_SetItem() succeeds at: PyDict_SetItem(newdict, PySTRtext, text); meld3/cmeld3.c:81:16: note: when PyDict_SetItem() succeeds at: PyDict_SetItem(newdict, PySTRtail, tail); meld3/cmeld3.c:82:16: note: when PyDict_SetItem() succeeds at: PyDict_SetItem(newdict, PySTRtag, tag); meld3/cmeld3.c:83:16: note: when PyDict_SetItem() succeeds at: PyDict_SetItem(newdict, PySTRstructure, structure); meld3/cmeld3.c:84:16: note: when treating unknown struct PyObject * from meld3/cmeld3.c:7 as non-NULL at: PyDict_SetItem(newdict, PySTRparent, parent); meld3/cmeld3.c:84:16: note: when PyDict_SetItem() succeeds at: PyDict_SetItem(newdict, PySTRparent, parent); meld3/cmeld3.c:86:5: note: when PyInstance_NewRaw() succeeds at: if (!(element = PyInstance_NewRaw(klass, newdict))) { meld3/cmeld3.c:86:5: note: taking False path at: if (!(element = PyInstance_NewRaw(klass, newdict))) { meld3/cmeld3.c:90:9: note: reaching: Py_DECREF(newdict); meld3/cmeld3.c:90:9: note: when taking True path at: Py_DECREF(newdict); meld3/cmeld3.c:91:2: note: reaching: Py_DECREF(klass); meld3/cmeld3.c:91:2: note: when taking True path at: Py_DECREF(klass); meld3/cmeld3.c:93:19: note: reaching: if (PyList_Append(L, element)) { meld3/cmeld3.c:93:19: note: when PyList_Append() succeeds at: if (PyList_Append(L, element)) { meld3/cmeld3.c:93:5: note: taking False path at: if (PyList_Append(L, element)) { meld3/cmeld3.c:96:9: note: reaching: Py_DECREF(element); meld3/cmeld3.c:96:9: note: taking True path at: Py_DECREF(element); meld3/cmeld3.c:98:7: note: reaching: if (!PyList_Check(children)) return NULL; meld3/cmeld3.c:98:5: note: when considering range: 1 <= value <= 0x2000000 at: if (!PyList_Check(children)) return NULL; meld3/cmeld3.c:98:5: note: taking False path at: if (!PyList_Check(children)) return NULL; meld3/cmeld3.c:100:30: note: reaching: if ((childsize = PyList_Size(children)) < 0) { meld3/cmeld3.c:100:30: note: when PyList_Size() returns ob_size at: if ((childsize = PyList_Size(children)) < 0) { meld3/cmeld3.c:100:5: note: when considering range: -0x80000000 <= value <= -1 at: if ((childsize = PyList_Size(children)) < 0) { meld3/cmeld3.c:100:5: note: taking True path at: if ((childsize = PyList_Size(children)) < 0) { meld3/cmeld3.c:101:6: note: reaching: return NULL; meld3/cmeld3.c:114:1: note: returning meld3/cmeld3.c:114:1: note: found 3 similar trace(s) to this meld3/cmeld3.c:15:1: note: graphical error report for function 'bfclone' written out to 'build/temp.linux-x86_64-2.7/meld3/cmeld3.c.bfclone-refcount-errors.html' gcc -pthread -shared -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic build/temp.linux-x86_64-2.7/meld3/cmeld3.o -L/usr/lib64 -lpython2.7 -o build/lib.linux-x86_64-2.7/meld3/cmeld3.so + exit 0 Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.Lmm1yh + umask 022 + cd /builddir/build/BUILD + '[' /builddir/build/BUILDROOT/python-meld3-0.6.7-5.fc16.x86_64 '!=' / ']' + rm -rf /builddir/build/BUILDROOT/python-meld3-0.6.7-5.fc16.x86_64 ++ dirname /builddir/build/BUILDROOT/python-meld3-0.6.7-5.fc16.x86_64 + mkdir -p /builddir/build/BUILDROOT + mkdir /builddir/build/BUILDROOT/python-meld3-0.6.7-5.fc16.x86_64 + cd meld3-0.6.7 + LANG=C + export LANG + unset DISPLAY + rm -rf /builddir/build/BUILDROOT/python-meld3-0.6.7-5.fc16.x86_64 + export USE_MELD3_EXTENSION_MODULES=True + USE_MELD3_EXTENSION_MODULES=True + /usr/bin/python setup.py install --skip-build --root /builddir/build/BUILDROOT/python-meld3-0.6.7-5.fc16.x86_64 running install running install_lib creating /builddir/build/BUILDROOT/python-meld3-0.6.7-5.fc16.x86_64 creating /builddir/build/BUILDROOT/python-meld3-0.6.7-5.fc16.x86_64/usr creating /builddir/build/BUILDROOT/python-meld3-0.6.7-5.fc16.x86_64/usr/lib64 creating /builddir/build/BUILDROOT/python-meld3-0.6.7-5.fc16.x86_64/usr/lib64/python2.7 creating /builddir/build/BUILDROOT/python-meld3-0.6.7-5.fc16.x86_64/usr/lib64/python2.7/site-packages creating /builddir/build/BUILDROOT/python-meld3-0.6.7-5.fc16.x86_64/usr/lib64/python2.7/site-packages/meld3 copying build/lib.linux-x86_64-2.7/meld3/cmeld3.so -> /builddir/build/BUILDROOT/python-meld3-0.6.7-5.fc16.x86_64/usr/lib64/python2.7/site-packages/meld3 copying build/lib.linux-x86_64-2.7/meld3/__init__.py -> /builddir/build/BUILDROOT/python-meld3-0.6.7-5.fc16.x86_64/usr/lib64/python2.7/site-packages/meld3 copying build/lib.linux-x86_64-2.7/meld3/example.py -> /builddir/build/BUILDROOT/python-meld3-0.6.7-5.fc16.x86_64/usr/lib64/python2.7/site-packages/meld3 copying build/lib.linux-x86_64-2.7/meld3/test_meld3.py -> /builddir/build/BUILDROOT/python-meld3-0.6.7-5.fc16.x86_64/usr/lib64/python2.7/site-packages/meld3 copying build/lib.linux-x86_64-2.7/meld3/meldprofile.py -> /builddir/build/BUILDROOT/python-meld3-0.6.7-5.fc16.x86_64/usr/lib64/python2.7/site-packages/meld3 copying build/lib.linux-x86_64-2.7/meld3/clearsilverprofile.py -> /builddir/build/BUILDROOT/python-meld3-0.6.7-5.fc16.x86_64/usr/lib64/python2.7/site-packages/meld3 copying build/lib.linux-x86_64-2.7/meld3/meld3.py -> /builddir/build/BUILDROOT/python-meld3-0.6.7-5.fc16.x86_64/usr/lib64/python2.7/site-packages/meld3 copying build/lib.linux-x86_64-2.7/meld3/melddiff.py -> /builddir/build/BUILDROOT/python-meld3-0.6.7-5.fc16.x86_64/usr/lib64/python2.7/site-packages/meld3 copying build/lib.linux-x86_64-2.7/meld3/test_getiterator.py -> /builddir/build/BUILDROOT/python-meld3-0.6.7-5.fc16.x86_64/usr/lib64/python2.7/site-packages/meld3 copying build/lib.linux-x86_64-2.7/meld3/testclone.py -> /builddir/build/BUILDROOT/python-meld3-0.6.7-5.fc16.x86_64/usr/lib64/python2.7/site-packages/meld3 copying build/lib.linux-x86_64-2.7/meld3/zptprofile.py -> /builddir/build/BUILDROOT/python-meld3-0.6.7-5.fc16.x86_64/usr/lib64/python2.7/site-packages/meld3 byte-compiling /builddir/build/BUILDROOT/python-meld3-0.6.7-5.fc16.x86_64/usr/lib64/python2.7/site-packages/meld3/__init__.py to __init__.pyc byte-compiling /builddir/build/BUILDROOT/python-meld3-0.6.7-5.fc16.x86_64/usr/lib64/python2.7/site-packages/meld3/example.py to example.pyc byte-compiling /builddir/build/BUILDROOT/python-meld3-0.6.7-5.fc16.x86_64/usr/lib64/python2.7/site-packages/meld3/test_meld3.py to test_meld3.pyc byte-compiling /builddir/build/BUILDROOT/python-meld3-0.6.7-5.fc16.x86_64/usr/lib64/python2.7/site-packages/meld3/meldprofile.py to meldprofile.pyc byte-compiling /builddir/build/BUILDROOT/python-meld3-0.6.7-5.fc16.x86_64/usr/lib64/python2.7/site-packages/meld3/clearsilverprofile.py to clearsilverprofile.pyc byte-compiling /builddir/build/BUILDROOT/python-meld3-0.6.7-5.fc16.x86_64/usr/lib64/python2.7/site-packages/meld3/meld3.py to meld3.pyc byte-compiling /builddir/build/BUILDROOT/python-meld3-0.6.7-5.fc16.x86_64/usr/lib64/python2.7/site-packages/meld3/melddiff.py to melddiff.pyc byte-compiling /builddir/build/BUILDROOT/python-meld3-0.6.7-5.fc16.x86_64/usr/lib64/python2.7/site-packages/meld3/test_getiterator.py to test_getiterator.pyc byte-compiling /builddir/build/BUILDROOT/python-meld3-0.6.7-5.fc16.x86_64/usr/lib64/python2.7/site-packages/meld3/testclone.py to testclone.pyc byte-compiling /builddir/build/BUILDROOT/python-meld3-0.6.7-5.fc16.x86_64/usr/lib64/python2.7/site-packages/meld3/zptprofile.py to zptprofile.pyc running install_egg_info Writing /builddir/build/BUILDROOT/python-meld3-0.6.7-5.fc16.x86_64/usr/lib64/python2.7/site-packages/meld3-0.6.7-py2.7.egg-info ++ find /builddir/build/BUILDROOT/python-meld3-0.6.7-5.fc16.x86_64//usr/lib64/python2.7/site-packages/meld3/ -type f + sed -i 's/^#!.*//' /builddir/build/BUILDROOT/python-meld3-0.6.7-5.fc16.x86_64//usr/lib64/python2.7/site-packages/meld3/cmeld3.so /builddir/build/BUILDROOT/python-meld3-0.6.7-5.fc16.x86_64//usr/lib64/python2.7/site-packages/meld3/meld3.pyc /builddir/build/BUILDROOT/python-meld3-0.6.7-5.fc16.x86_64//usr/lib64/python2.7/site-packages/meld3/__init__.py /builddir/build/BUILDROOT/python-meld3-0.6.7-5.fc16.x86_64//usr/lib64/python2.7/site-packages/meld3/clearsilverprofile.pyc /builddir/build/BUILDROOT/python-meld3-0.6.7-5.fc16.x86_64//usr/lib64/python2.7/site-packages/meld3/testclone.pyc /builddir/build/BUILDROOT/python-meld3-0.6.7-5.fc16.x86_64//usr/lib64/python2.7/site-packages/meld3/melddiff.pyc /builddir/build/BUILDROOT/python-meld3-0.6.7-5.fc16.x86_64//usr/lib64/python2.7/site-packages/meld3/__init__.pyc /builddir/build/BUILDROOT/python-meld3-0.6.7-5.fc16.x86_64//usr/lib64/python2.7/site-packages/meld3/example.py /builddir/build/BUILDROOT/python-meld3-0.6.7-5.fc16.x86_64//usr/lib64/python2.7/site-packages/meld3/test_meld3.py /builddir/build/BUILDROOT/python-meld3-0.6.7-5.fc16.x86_64//usr/lib64/python2.7/site-packages/meld3/test_meld3.pyc /builddir/build/BUILDROOT/python-meld3-0.6.7-5.fc16.x86_64//usr/lib64/python2.7/site-packages/meld3/meldprofile.py /builddir/build/BUILDROOT/python-meld3-0.6.7-5.fc16.x86_64//usr/lib64/python2.7/site-packages/meld3/test_getiterator.pyc /builddir/build/BUILDROOT/python-meld3-0.6.7-5.fc16.x86_64//usr/lib64/python2.7/site-packages/meld3/zptprofile.pyc /builddir/build/BUILDROOT/python-meld3-0.6.7-5.fc16.x86_64//usr/lib64/python2.7/site-packages/meld3/clearsilverprofile.py /builddir/build/BUILDROOT/python-meld3-0.6.7-5.fc16.x86_64//usr/lib64/python2.7/site-packages/meld3/meld3.py /builddir/build/BUILDROOT/python-meld3-0.6.7-5.fc16.x86_64//usr/lib64/python2.7/site-packages/meld3/melddiff.py /builddir/build/BUILDROOT/python-meld3-0.6.7-5.fc16.x86_64//usr/lib64/python2.7/site-packages/meld3/test_getiterator.py /builddir/build/BUILDROOT/python-meld3-0.6.7-5.fc16.x86_64//usr/lib64/python2.7/site-packages/meld3/testclone.py /builddir/build/BUILDROOT/python-meld3-0.6.7-5.fc16.x86_64//usr/lib64/python2.7/site-packages/meld3/meldprofile.pyc /builddir/build/BUILDROOT/python-meld3-0.6.7-5.fc16.x86_64//usr/lib64/python2.7/site-packages/meld3/example.pyc /builddir/build/BUILDROOT/python-meld3-0.6.7-5.fc16.x86_64//usr/lib64/python2.7/site-packages/meld3/zptprofile.py + chmod 0755 /builddir/build/BUILDROOT/python-meld3-0.6.7-5.fc16.x86_64//usr/lib64/python2.7/site-packages/meld3/cmeld3.so + /usr/lib/rpm/find-debuginfo.sh --strict-build-id /builddir/build/BUILD/meld3-0.6.7 extracting debug info from /builddir/build/BUILDROOT/python-meld3-0.6.7-5.fc16.x86_64/usr/lib64/python2.7/site-packages/meld3/cmeld3.so 20 blocks + /usr/lib/rpm/check-buildroot + /usr/lib/rpm/redhat/brp-compress + /usr/lib/rpm/redhat/brp-strip-static-archive /usr/bin/strip + /usr/lib/rpm/brp-python-bytecompile /usr/bin/python 1 Bytecompiling .py files below /builddir/build/BUILDROOT/python-meld3-0.6.7-5.fc16.x86_64/usr/lib64/python2.7/ using /usr/bin/python2.7 + /usr/lib/rpm/redhat/brp-python-hardlink + /usr/lib/rpm/redhat/brp-java-repack-jars Executing(%check): /bin/sh -e /var/tmp/rpm-tmp.FOjOda + umask 022 + cd /builddir/build/BUILD + cd meld3-0.6.7 + unset DISPLAY + /usr/bin/python meld3/test_meld3.py .................................................................................. ---------------------------------------------------------------------- Ran 82 tests in 0.083s OK + exit 0 Processing files: python-meld3-0.6.7-5.fc16.x86_64 Executing(%doc): /bin/sh -e /var/tmp/rpm-tmp.NpNKh3 + umask 022 + cd /builddir/build/BUILD + cd meld3-0.6.7 + DOCDIR=/builddir/build/BUILDROOT/python-meld3-0.6.7-5.fc16.x86_64/usr/share/doc/python-meld3-0.6.7 + export DOCDIR + /bin/mkdir -p /builddir/build/BUILDROOT/python-meld3-0.6.7-5.fc16.x86_64/usr/share/doc/python-meld3-0.6.7 + cp -pr README.txt COPYRIGHT.txt LICENSE.txt CHANGES.txt /builddir/build/BUILDROOT/python-meld3-0.6.7-5.fc16.x86_64/usr/share/doc/python-meld3-0.6.7 + exit 0 Provides: cmeld3.so()(64bit) Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PartialHardlinkSets) <= 4.0.4-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Requires: libc.so.6()(64bit) libc.so.6(GLIBC_2.2.5)(64bit) libpthread.so.0()(64bit) libpython2.7.so.1.0()(64bit) python(abi) = 2.7 rtld(GNU_HASH) Processing files: python-meld3-debuginfo-0.6.7-5.fc16.x86_64 Checking for unpackaged file(s): /usr/lib/rpm/check-files /builddir/build/BUILDROOT/python-meld3-0.6.7-5.fc16.x86_64 Wrote: /builddir/build/RPMS/python-meld3-0.6.7-5.fc16.x86_64.rpm Wrote: /builddir/build/RPMS/python-meld3-debuginfo-0.6.7-5.fc16.x86_64.rpm Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.qUrIZM + umask 022 + cd /builddir/build/BUILD + cd meld3-0.6.7 + rm -rf /builddir/build/BUILDROOT/python-meld3-0.6.7-5.fc16.x86_64 + exit 0 Child returncode was: 0 LEAVE do -->