diff --git a/src/pl/plpython/plpython.c b/src/pl/plpython/plpython.c index 5f485aa9e19..a2051534290 100644 --- a/src/pl/plpython/plpython.c +++ b/src/pl/plpython/plpython.c @@ -29,7 +29,7 @@ * MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/pl/plpython/plpython.c,v 1.26.2.6 2003/09/17 18:40:11 tgl Exp $ + * $Header: /cvsroot/pgsql/src/pl/plpython/plpython.c,v 1.26.2.7 2006/02/20 20:10:48 neilc Exp $ * ********************************************************************* */ @@ -1131,7 +1131,7 @@ PLy_procedure_create(FunctionCallInfo fcinfo, bool is_trigger, } /* - * 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; @@ -2855,6 +2855,7 @@ PLy_traceback(int *xlevel) } PyErr_NormalizeException(&e, &v, &tb); + Py_XDECREF(tb); eob = PyObject_Str(e); if ((v) && ((vob = PyObject_Str(v)) != NULL)) @@ -2867,9 +2868,10 @@ PLy_traceback(int *xlevel) 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; @@ -2878,6 +2880,7 @@ PLy_traceback(int *xlevel) else *xlevel = ERROR; + Py_DECREF(e); leave(); return xstr;