File: | src/python_module.c |
Function: | pm_make_change |
Error: | ob_refcnt of '*pychg_cobject' is 1 too high |
70 static PyObject *pm_make_change(PyObject *osync_module, OSyncChange *change, OSyncError **error)
71 {
72 PyObject *pychg_cobject = PyCObject_FromVoidPtr(change, NULL);
73 if (!pychg_cobject) {
when PyCObject_FromVoidPtr() succeeds
PyCObject allocated at: PyObject *pychg_cobject = PyCObject_FromVoidPtr(change, NULL);
ob_refcnt is now refs: 1 + N where N >= 0
74 osync_error_set(error, OSYNC_ERROR_GENERIC, "Couldnt make pychg cobject");
taking False path
75 PyErr_Print();
76 return NULL;
77 }
78
79 PyObject *pychg = PyObject_CallMethod(osync_module, "OSyncChange", "O", pychg_cobject);
80 if (!pychg) {
when PyObject_CallMethod() succeeds
81 osync_error_set(error, OSYNC_ERROR_GENERIC, "Cannot create Python OSyncChange");
taking False path
82 PyErr_Print();
83 Py_XDECREF(pychg_cobject);
84 return NULL;
85 }
86 return pychg;
87 }
88
File: | src/python_module.c |
Function: | pm_make_change |
Error: | returning (PyObject*)NULL without setting an exception |
70 static PyObject *pm_make_change(PyObject *osync_module, OSyncChange *change, OSyncError **error)
71 {
72 PyObject *pychg_cobject = PyCObject_FromVoidPtr(change, NULL);
73 if (!pychg_cobject) {
when PyCObject_FromVoidPtr() succeeds
74 osync_error_set(error, OSYNC_ERROR_GENERIC, "Couldnt make pychg cobject");
taking False path
75 PyErr_Print();
76 return NULL;
77 }
78
79 PyObject *pychg = PyObject_CallMethod(osync_module, "OSyncChange", "O", pychg_cobject);
80 if (!pychg) {
when PyObject_CallMethod() fails
thread-local exception state now has value: (struct PyObject *)&RegionForGlobal(gcc.VarDecl('PyExc_MemoryError')) from src/python_module.c:80
81 osync_error_set(error, OSYNC_ERROR_GENERIC, "Cannot create Python OSyncChange");
taking True path
82 PyErr_Print();
83 Py_XDECREF(pychg_cobject);
calling PyErr_Print()
thread-local exception state now has value: (struct PyObject *)0 from src/python_module.c:83
84 return NULL;
taking False path
when taking True path
85 }
86 return pychg;
87 }
88