index 2632e93493bce2fa021d6c7ed1b8e18abc9df05a..2df1ef3989399bf861440a646d27d5da0f797dda 100644 (file)
* MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/pl/plpython/plpython.c,v 1.70 2006年01月10日 00:33:12 neilc Exp $
+ * $PostgreSQL: pgsql/src/pl/plpython/plpython.c,v 1.71 2006年02月20日 20:10:37 neilc Exp $
*
*********************************************************************
*/
@@ -543,7 +543,6 @@ PLy_modify_tuple(PLyProcedure * proc, PyObject * pltd, TriggerData *tdata,
{
Py_XDECREF(plntup);
Py_XDECREF(plkeys);
- Py_XDECREF(platt);
Py_XDECREF(plval);
Py_XDECREF(plstr);
@@ -1068,7 +1067,7 @@ PLy_procedure_create(FunctionCallInfo fcinfo, Oid tgreloid,
}
/*
- * now get information required for input conversion of the procedures
+ * now get information required for input conversion of the procedure's
* arguments.
*/
proc->nargs = fcinfo->nargs;
}
PyErr_NormalizeException(&e, &v, &tb);
+ Py_XDECREF(tb);
eob = PyObject_Str(e);
if (v && ((vob = PyObject_Str(v)) != NULL))
Py_DECREF(eob);
Py_XDECREF(vob);
+ Py_XDECREF(v);
/*
- * intuit an appropriate error level for based on the exception type
+ * intuit an appropriate error level based on the exception type
*/
if (PLy_exc_error && PyErr_GivenExceptionMatches(e, PLy_exc_error))
*xlevel = ERROR;
else
*xlevel = ERROR;
+ Py_DECREF(e);
return xstr;
}