mirror of
https://github.com/psycopg/psycopg2.git
synced 2024-11-22 00:46:33 +03:00
Work around refcount cpychecker bug
Also increment error/code refcounts before storing in error state.
This commit is contained in:
parent
6aaecd6563
commit
2aedbedcbf
|
@ -305,12 +305,20 @@ psyco_error_setstate(errorObject *self, PyObject *state)
|
|||
|
||||
/* load the dict content in the structure */
|
||||
Py_CLEAR(self->pgerror);
|
||||
self->pgerror = PyDict_GetItemString(state, "pgerror");
|
||||
Py_XINCREF(self->pgerror);
|
||||
{
|
||||
PyObject *tmp;
|
||||
tmp = PyDict_GetItemString(state, "pgerror");
|
||||
Py_XINCREF(tmp);
|
||||
self->pgerror = TO_STATE(tmp);
|
||||
}
|
||||
|
||||
Py_CLEAR(self->pgcode);
|
||||
self->pgcode = PyDict_GetItemString(state, "pgcode");
|
||||
Py_XINCREF(self->pgcode);
|
||||
{
|
||||
PyObject *tmp;
|
||||
tmp = PyDict_GetItemString(state, "pgcode");
|
||||
Py_XINCREF(tmp);
|
||||
self->pgcode = TO_STATE(tmp);
|
||||
}
|
||||
|
||||
Py_CLEAR(self->cursor);
|
||||
/* We never expect a cursor in the state as it's not picklable.
|
||||
|
|
Loading…
Reference in New Issue
Block a user