summaryrefslogtreecommitdiff
path: root/psycopg/microprotocols.c
diff options
context:
space:
mode:
authorFederico Di Gregorio <fog@initd.org>2005-05-15 10:29:59 +0000
committerFederico Di Gregorio <fog@initd.org>2005-05-15 10:29:59 +0000
commite1e0b34343dff015a948e2728b8356ade685c43e (patch)
tree70c593ada4882d5d39d14b113312d6e55ad8059c /psycopg/microprotocols.c
parent35c42310ec14722ddf5c888cff33e5ff3b958da1 (diff)
downloadpsycopg2-e1e0b34343dff015a948e2728b8356ade685c43e.tar.gz
Fixed wrong refcnt on None.
Diffstat (limited to 'psycopg/microprotocols.c')
-rw-r--r--psycopg/microprotocols.c2
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;
}