File: source/IoPython.c
Function: convertIo
Error: ob_refcnt of return value is 1 too high
98  */
99 PyObject *convertIo(IoObject *self, IoObject *obj) {
100 	PyObject *ret;
101 	if(ISNUMBER(obj)) {
when considering range: -0x80000000 <= value <= -1
taking True path
102 		ret = PyFloat_FromDouble(CNUMBER(obj));
when treating unknown struct IoObject * from source/IoPython.c:99 as non-NULL
when treating unknown struct IoObjectData * from source/IoPython.c:102 as non-NULL
when PyFloat_FromDouble() succeeds
PyFloatObject allocated at: 		ret = PyFloat_FromDouble(CNUMBER(obj));
ob_refcnt is now refs: 1 + N where N >= 0
103 		Py_INCREF(ret);
ob_refcnt is now refs: 2 + N where N >= 0
104 		return ret;
105 	}
106 	if(ISSEQ(obj)) {
107 		ret = PyString_FromString(CSTRING(obj));
108 		Py_INCREF(ret);
109 		return ret;
110 	}
111 	printf("Unable to convert parameter to python.\n");
112 	return NULL;
113 }
ob_refcnt of return value is 1 too high
was expecting final ob_refcnt to be N + 1 (for some unknown N)
due to object being referenced by: return value
but final ob_refcnt is N + 2
found 3 similar trace(s) to this

File: source/IoPython.c
Function: convertIo
Error: dereferencing NULL (ret->ob_refcnt) at source/IoPython.c:103
98  */
99 PyObject *convertIo(IoObject *self, IoObject *obj) {
100 	PyObject *ret;
101 	if(ISNUMBER(obj)) {
when considering range: -0x80000000 <= value <= -1
taking True path
102 		ret = PyFloat_FromDouble(CNUMBER(obj));
when treating unknown struct IoObject * from source/IoPython.c:99 as non-NULL
when treating unknown struct IoObjectData * from source/IoPython.c:102 as non-NULL
when PyFloat_FromDouble() fails
103 		Py_INCREF(ret);
dereferencing NULL (ret->ob_refcnt) at source/IoPython.c:103
found 1 similar trace(s) to this
104 		return ret;
105 	}
106 	if(ISSEQ(obj)) {
107 		ret = PyString_FromString(CSTRING(obj));
108 		Py_INCREF(ret);
109 		return ret;
110 	}
111 	printf("Unable to convert parameter to python.\n");
112 	return NULL;
113 }

File: source/IoPython.c
Function: convertIo
Error: dereferencing NULL (ret->ob_refcnt) at source/IoPython.c:108
98  */
99 PyObject *convertIo(IoObject *self, IoObject *obj) {
100 	PyObject *ret;
101 	if(ISNUMBER(obj)) {
when considering value == (int)0 from source/IoPython.c:101
taking False path
102 		ret = PyFloat_FromDouble(CNUMBER(obj));
103 		Py_INCREF(ret);
104 		return ret;
105 	}
106 	if(ISSEQ(obj)) {
when considering range: -0x80000000 <= value <= -1
taking True path
107 		ret = PyString_FromString(CSTRING(obj));
when treating unknown char * from source/IoPython.c:107 as non-NULL
when PyString_FromString() fails
108 		Py_INCREF(ret);
dereferencing NULL (ret->ob_refcnt) at source/IoPython.c:108
found 1 similar trace(s) to this
109 		return ret;
110 	}
111 	printf("Unable to convert parameter to python.\n");
112 	return NULL;
113 }

File: source/IoPython.c
Function: convertIo
Error: returning (PyObject*)NULL without setting an exception
98  */
99 PyObject *convertIo(IoObject *self, IoObject *obj) {
100 	PyObject *ret;
101 	if(ISNUMBER(obj)) {
when considering value == (int)0 from source/IoPython.c:101
taking False path
102 		ret = PyFloat_FromDouble(CNUMBER(obj));
103 		Py_INCREF(ret);
104 		return ret;
105 	}
106 	if(ISSEQ(obj)) {
when considering value == (int)0 from source/IoPython.c:106
taking False path
107 		ret = PyString_FromString(CSTRING(obj));
108 		Py_INCREF(ret);
109 		return ret;
110 	}
111 	printf("Unable to convert parameter to python.\n");
112 	return NULL;
113 }
returning (PyObject*)NULL without setting an exception