diff options
| author | Federico Di Gregorio <fog@initd.org> | 2005-05-15 10:29:59 +0000 |
|---|---|---|
| committer | Federico Di Gregorio <fog@initd.org> | 2005-05-15 10:29:59 +0000 |
| commit | e1e0b34343dff015a948e2728b8356ade685c43e (patch) | |
| tree | 70c593ada4882d5d39d14b113312d6e55ad8059c /psycopg/microprotocols.c | |
| parent | 35c42310ec14722ddf5c888cff33e5ff3b958da1 (diff) | |
| download | psycopg2-e1e0b34343dff015a948e2728b8356ade685c43e.tar.gz | |
Fixed wrong refcnt on None.
Diffstat (limited to 'psycopg/microprotocols.c')
| -rw-r--r-- | psycopg/microprotocols.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/psycopg/microprotocols.c b/psycopg/microprotocols.c index 6f75f25..4f97279 100644 --- a/psycopg/microprotocols.c +++ b/psycopg/microprotocols.c @@ -93,6 +93,7 @@ microprotocols_adapt(PyObject *obj, PyObject *proto, PyObject *alt) if (PyObject_HasAttrString(proto, "__adapt__")) { PyObject *adapted = PyObject_CallMethod(proto, "__adapt__", "O", obj); if (adapted && adapted != Py_None) return adapted; + Py_XDECREF(adapted); if (PyErr_Occurred() && !PyErr_ExceptionMatches(PyExc_TypeError)) return NULL; } @@ -101,6 +102,7 @@ microprotocols_adapt(PyObject *obj, PyObject *proto, PyObject *alt) if (PyObject_HasAttrString(obj, "__conform__")) { PyObject *adapted = PyObject_CallMethod(obj, "__conform__","O", proto); if (adapted && adapted != Py_None) return adapted; + Py_XDECREF(adapted); if (PyErr_Occurred() && !PyErr_ExceptionMatches(PyExc_TypeError)) return NULL; } |
