diff options
| -rw-r--r-- | src/pl/plpython/plpython.c | 7 | 
1 files changed, 6 insertions, 1 deletions
diff --git a/src/pl/plpython/plpython.c b/src/pl/plpython/plpython.c index e1a976ec6e5..e7e5ded1200 100644 --- a/src/pl/plpython/plpython.c +++ b/src/pl/plpython/plpython.c @@ -1,7 +1,7 @@  /**********************************************************************   * plpython.c - python as a procedural language for PostgreSQL   * - *	$PostgreSQL: pgsql/src/pl/plpython/plpython.c,v 1.148 2010/07/08 19:00:11 tgl Exp $ + *	$PostgreSQL: pgsql/src/pl/plpython/plpython.c,v 1.148.2.1 2010/08/25 19:37:52 petere Exp $   *   *********************************************************************   */ @@ -1315,6 +1315,8 @@ PLy_procedure_get(FunctionCallInfo fcinfo, Oid tgreloid)  			elog(FATAL, "expected a PyCObject, didn't get one");  		proc = PyCObject_AsVoidPtr(plproc); +		if (!proc) +			PLy_elog(ERROR, "PyCObject_AsVoidPtr() failed");  		if (proc->me != plproc)  			elog(FATAL, "proc->me != plproc");  		/* did we find an up-to-date cache entry? */ @@ -1539,8 +1541,11 @@ PLy_procedure_create(HeapTuple procTup, Oid tgreloid, char *key)  		PLy_procedure_compile(proc, procSource);  		pfree(procSource); +		procSource = NULL;  		proc->me = PyCObject_FromVoidPtr(proc, NULL); +		if (!proc->me) +			PLy_elog(ERROR, "PyCObject_FromVoidPtr() failed");  		PyDict_SetItemString(PLy_procedure_cache, key, proc->me);  	}  	PG_CATCH();  | 
