1167 static PyObject *
1168 PyShm_getsemid(
1169 PyObject *self,
1170 PyObject *args)
1171 {
1172 long key;
1173 int semid;
1174
1175 if (!PyArg_ParseTuple(args, "l", &key))
when PyArg_ParseTuple() succeeds
taking False path
1176 return NULL;
1177 semid = semget((key_t)key, 0, 0);
1178 if (semid == -1) {
when considering value == (int)-1 from src/extensions/shmmodule.c:1177
taking True path
1179 PyErr_SetObject(PyExc_KeyError, PyInt_FromLong(key));
when PyInt_FromLong() succeeds
calling PyErr_SetObject()
PyIntObject allocated at: PyErr_SetObject(PyExc_KeyError, PyInt_FromLong(key));
ob_refcnt is now refs: 1 + N where N >= 0
ob_refcnt is now refs: 1 + N where N >= 1
1180 return NULL;
1181 }
1182 return PyInt_FromLong(semid);
1183 }
ob_refcnt of PyIntObject is 1 too high
was expecting final ob_refcnt to be N + 0 (for some unknown N)
but final ob_refcnt is N + 1