File: | src/python_module.c |
Function: | pm_make_member |
Error: | ob_refcnt of '*pymember_cobject' is 1 too high |
108 static PyObject *pm_make_member(PyObject *osync_module, OSyncMember *member, OSyncError **error)
109 {
110 PyObject *pymember_cobject = PyCObject_FromVoidPtr(member, NULL);
111 if (!pymember_cobject) {
when PyCObject_FromVoidPtr() succeeds
PyCObject allocated at: PyObject *pymember_cobject = PyCObject_FromVoidPtr(member, NULL);
ob_refcnt is now refs: 1 + N where N >= 0
112 osync_error_set(error, OSYNC_ERROR_GENERIC, "Couldnt make pymember cobject");
taking False path
113 PyErr_Print();
114 return NULL;
115 }
116
117 PyObject *pymember = PyObject_CallMethod(osync_module, "OSyncMember", "O", pymember_cobject);
118 if (!pymember) {
when PyObject_CallMethod() succeeds
119 osync_error_set(error, OSYNC_ERROR_GENERIC, "Cannot create Python OSyncMember");
taking False path
120 PyErr_Print();
121 Py_XDECREF(pymember_cobject);
122 return NULL;
123 }
124 return pymember;
125 }
126
File: | src/python_module.c |
Function: | pm_make_member |
Error: | returning (PyObject*)NULL without setting an exception |
108 static PyObject *pm_make_member(PyObject *osync_module, OSyncMember *member, OSyncError **error)
109 {
110 PyObject *pymember_cobject = PyCObject_FromVoidPtr(member, NULL);
111 if (!pymember_cobject) {
when PyCObject_FromVoidPtr() succeeds
112 osync_error_set(error, OSYNC_ERROR_GENERIC, "Couldnt make pymember cobject");
taking False path
113 PyErr_Print();
114 return NULL;
115 }
116
117 PyObject *pymember = PyObject_CallMethod(osync_module, "OSyncMember", "O", pymember_cobject);
118 if (!pymember) {
when PyObject_CallMethod() fails
thread-local exception state now has value: (struct PyObject *)&RegionForGlobal(gcc.VarDecl('PyExc_MemoryError')) from src/python_module.c:118
119 osync_error_set(error, OSYNC_ERROR_GENERIC, "Cannot create Python OSyncMember");
taking True path
120 PyErr_Print();
121 Py_XDECREF(pymember_cobject);
calling PyErr_Print()
thread-local exception state now has value: (struct PyObject *)0 from src/python_module.c:121
122 return NULL;
taking False path
when taking True path
123 }
124 return pymember;
125 }
126