File: shout.c
Function: pshoutobj_setattr
Error: ob_refcnt of PyDictObject is 1 too high
344 static int pshoutobj_setattr(PyObject* self, char* name, PyObject* v) {
345   ShoutObject* me = (ShoutObject*)self;
346   ShoutObjectAttr* attr;
347 
348   if (!me->attr && !(me->attr = PyDict_New()))
349     return -1;
when treating unknown struct PyObject * from shout.c:349 as NULL
taking True path
when PyDict_New() succeeds
taking False path
PyDictObject allocated at:   if (!me->attr && !(me->attr = PyDict_New()))
ob_refcnt is now refs: 1 + N where N >= 0
350 
351   if (v == NULL)
352     return -1;
taking False path
353   
354   for (attr = ShoutObjectAttrs; attr->name; attr++) {
355     if (!strcmp(attr->name, name)) {
when treating unknown const char * from shout.c:355 as non-NULL
taking True path
when treating unknown const char * from shout.c:355 as NULL
taking False path
356       if (v != Py_None && attr->set(attr, me, v) != SHOUTERR_SUCCESS) {
when considering range: -0x80000000 <= value <= -1
taking False path
357 	if (!PyErr_Occurred())
358 	  PyErr_SetString(ShoutError, shout_get_error(me->conn));
359         return -1;
360       }
361       break;
362     }
363   }
364 
365   return PyDict_SetItemString(me->attr, name, v);
366 }
when treating unknown char * from shout.c:345 as non-NULL
when PyDict_SetItemString() succeeds
367 
ob_refcnt of PyDictObject is 1 too high was expecting final ob_refcnt to be N + 0 (for some unknown N) but final ob_refcnt is N + 1 found 9 similar trace(s) to this