File: source/IoPython.c
Function: IoPython_call_int
Error: ob_refcnt of '*pyValue' is 1 too high
168 IoObject *IoPython_call_int(IoPython *self, IoObject *locals, IoMessage *m, int argOffset, char *functionName)
169 {
170 	int argc = IoMessage_argCount(m);
171 
172 	PyObject *pModule = DATA(self)->data;
173 	if(!pModule) {
when treating unknown struct IoPython * from source/IoPython.c:169 as non-NULL
when treating unknown struct IoObjectData * from source/IoPython.c:173 as non-NULL
when treating unknown void * from source/IoPython.c:173 as non-NULL
174 		fprintf(stderr, "We have null pModule for function %s ", functionName);
when treating unknown struct PyObject * from source/IoPython.c:173 as non-NULL
taking False path
175 		return IONIL(self);
176 	}
177 	if(!PyObject_HasAttrString(pModule, functionName)){
178 		fprintf(stderr, "Module has no function %s ", functionName);
when treating unknown char * from source/IoPython.c:169 as non-NULL
when PyObject_HasAttrString() returns 1 (true)
taking False path
179 		return IONIL(self);
180 	}
181 
182 	PyObject *pFunc = PyObject_GetAttrString(pModule, functionName);
183 	/* pFunc is a new reference */
when PyObject_GetAttrString() succeeds
184 
185 	if (pFunc && PyCallable_Check(pFunc)) {
186 		PyObject *pArgs = PyTuple_New(argc - argOffset); // argc
taking True path
when PyCallable_Check() returns 1 (true)
taking True path
187 		int i;
when PyTuple_New() succeeds
188 		for(i = argOffset;i<argc;i++) {
189 			IoObject *param = IoMessage_locals_valueArgAt_(m, locals, i);
when taking True path
when taking False path
190 			PyObject *pyValue = convertIo(self, param);
191 			PyTuple_SetItem(pArgs, i-argOffset, pyValue);
when convertIo() succeeds
new ref from (unknown) convertIo allocated at: 			PyObject *pyValue = convertIo(self, param);
ob_refcnt is now refs: 1 + N where N >= 0
192 		}
when considering range: 0 <= value <= 0x7fffffff
when PyTuple_SetItem() fails (index out of range)
193 		PyObject *pValue = PyObject_CallObject(pFunc, pArgs);
194 		Py_DECREF(pArgs);
when PyObject_CallObject() fails
195 		Py_XDECREF(pFunc);
when taking True path
196 		if (pValue != NULL) {
taking False path
when taking True path
197 			return convertPy(self, pValue);
taking False path
198 		} else {
199 			if (PyErr_Occurred())
200 				PyErr_Print();
PyErr_Occurred()
taking True path
201 			fprintf(stderr,"Call failed\n");
calling PyErr_Print()
202 		}
203 	} else {
204 		if (PyErr_Occurred())
205 			PyErr_Print();
206 		else {
207 			return convertPy(self, pFunc);
208 		}
209 		fprintf(stderr, "Cannot find python function \"%s\"\n", functionName);
210 	}
211 	return IONIL(self);
212 }
when treating unknown struct IoObjectData * from source/IoPython.c:212 as non-NULL
when treating unknown struct IoTag * from source/IoPython.c:212 as non-NULL
when treating unknown void * from source/IoPython.c:212 as non-NULL
213 
ob_refcnt of '*pyValue' 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 12 similar trace(s) to this

File: source/IoPython.c
Function: IoPython_call_int
Error: ob_refcnt of '*pValue' is 1 too high
168 IoObject *IoPython_call_int(IoPython *self, IoObject *locals, IoMessage *m, int argOffset, char *functionName)
169 {
170 	int argc = IoMessage_argCount(m);
171 
172 	PyObject *pModule = DATA(self)->data;
173 	if(!pModule) {
when treating unknown struct IoPython * from source/IoPython.c:169 as non-NULL
when treating unknown struct IoObjectData * from source/IoPython.c:173 as non-NULL
when treating unknown void * from source/IoPython.c:173 as non-NULL
174 		fprintf(stderr, "We have null pModule for function %s ", functionName);
when treating unknown struct PyObject * from source/IoPython.c:173 as non-NULL
taking False path
175 		return IONIL(self);
176 	}
177 	if(!PyObject_HasAttrString(pModule, functionName)){
178 		fprintf(stderr, "Module has no function %s ", functionName);
when treating unknown char * from source/IoPython.c:169 as non-NULL
when PyObject_HasAttrString() returns 1 (true)
taking False path
179 		return IONIL(self);
180 	}
181 
182 	PyObject *pFunc = PyObject_GetAttrString(pModule, functionName);
183 	/* pFunc is a new reference */
when PyObject_GetAttrString() succeeds
184 
185 	if (pFunc && PyCallable_Check(pFunc)) {
186 		PyObject *pArgs = PyTuple_New(argc - argOffset); // argc
taking True path
when PyCallable_Check() returns 1 (true)
taking True path
187 		int i;
when PyTuple_New() succeeds
188 		for(i = argOffset;i<argc;i++) {
189 			IoObject *param = IoMessage_locals_valueArgAt_(m, locals, i);
when taking True path
when taking False path
190 			PyObject *pyValue = convertIo(self, param);
191 			PyTuple_SetItem(pArgs, i-argOffset, pyValue);
when convertIo() succeeds
192 		}
when considering range: 0 <= value <= 0x7fffffff
when PyTuple_SetItem() fails (index out of range)
193 		PyObject *pValue = PyObject_CallObject(pFunc, pArgs);
194 		Py_DECREF(pArgs);
when PyObject_CallObject() succeeds
new ref from call to PyObject_CallObject allocated at: 		PyObject *pValue = PyObject_CallObject(pFunc, pArgs);
ob_refcnt is now refs: 1 + N where N >= 0
195 		Py_XDECREF(pFunc);
when taking True path
196 		if (pValue != NULL) {
taking False path
when taking True path
197 			return convertPy(self, pValue);
taking True path
198 		} else {
199 			if (PyErr_Occurred())
200 				PyErr_Print();
201 			fprintf(stderr,"Call failed\n");
202 		}
203 	} else {
204 		if (PyErr_Occurred())
205 			PyErr_Print();
206 		else {
207 			return convertPy(self, pFunc);
208 		}
209 		fprintf(stderr, "Cannot find python function \"%s\"\n", functionName);
210 	}
211 	return IONIL(self);
212 }
213 
ob_refcnt of '*pValue' 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 7 similar trace(s) to this