diff options
Diffstat (limited to 'src/pl/plpython/plpython.c')
| -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 889c84ab565..64640b625d5 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.122.2.3 2010/04/30 19:15:51 tgl Exp $ + *	$PostgreSQL: pgsql/src/pl/plpython/plpython.c,v 1.122.2.4 2010/08/25 19:37:48 petere Exp $   *   *********************************************************************   */ @@ -1135,6 +1135,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? */ @@ -1361,8 +1363,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();  | 
