File: | src/python_module.c |
Function: | pm_make_context |
Error: | ob_refcnt of '*pyctx_cobject' is 1 too high |
89 static PyObject *pm_make_context(PyObject *osync_module, OSyncContext *ctx, OSyncError **error)
90 {
91 PyObject *pyctx_cobject = PyCObject_FromVoidPtr(ctx, NULL);
92 if (!pyctx_cobject) {
when PyCObject_FromVoidPtr() succeeds
PyCObject allocated at: PyObject *pyctx_cobject = PyCObject_FromVoidPtr(ctx, NULL);
ob_refcnt is now refs: 1 + N where N >= 0
93 osync_error_set(error, OSYNC_ERROR_GENERIC, "Couldnt make pyctx cobject");
taking False path
94 PyErr_Print();
95 return NULL;
96 }
97
98 PyObject *pyctx = PyObject_CallMethod(osync_module, "OSyncContext", "O", pyctx_cobject);
99 if (!pyctx) {
when PyObject_CallMethod() succeeds
100 osync_error_set(error, OSYNC_ERROR_GENERIC, "Cannot create Python OSyncContext");
taking False path
101 PyErr_Print();
102 Py_XDECREF(pyctx_cobject);
103 return NULL;
104 }
105 return pyctx;
106 }
107
File: | src/python_module.c |
Function: | pm_make_context |
Error: | returning (PyObject*)NULL without setting an exception |
89 static PyObject *pm_make_context(PyObject *osync_module, OSyncContext *ctx, OSyncError **error)
90 {
91 PyObject *pyctx_cobject = PyCObject_FromVoidPtr(ctx, NULL);
92 if (!pyctx_cobject) {
when PyCObject_FromVoidPtr() succeeds
93 osync_error_set(error, OSYNC_ERROR_GENERIC, "Couldnt make pyctx cobject");
taking False path
94 PyErr_Print();
95 return NULL;
96 }
97
98 PyObject *pyctx = PyObject_CallMethod(osync_module, "OSyncContext", "O", pyctx_cobject);
99 if (!pyctx) {
when PyObject_CallMethod() fails
thread-local exception state now has value: (struct PyObject *)&RegionForGlobal(gcc.VarDecl('PyExc_MemoryError')) from src/python_module.c:99
100 osync_error_set(error, OSYNC_ERROR_GENERIC, "Cannot create Python OSyncContext");
taking True path
101 PyErr_Print();
102 Py_XDECREF(pyctx_cobject);
calling PyErr_Print()
thread-local exception state now has value: (struct PyObject *)0 from src/python_module.c:102
103 return NULL;
taking False path
when taking True path
104 }
105 return pyctx;
106 }
107