From a232f30f05848830dad21c6786e0841ddad991fb Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Thu, 18 Feb 2010 23:50:06 +0000 Subject: [PATCH] Volatile-ize all five places where we expect a PG_TRY block to restore old memory context in plpython. Before only one of them was marked volatile, but per report from Zdenek Kotala, some compilers do the wrong thing here. --- src/pl/plpython/plpython.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/pl/plpython/plpython.c b/src/pl/plpython/plpython.c index 37b8638a08..4bba81aceb 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.137 2010/02/14 18:42:19 rhaas Exp $ + * $PostgreSQL: pgsql/src/pl/plpython/plpython.c,v 1.138 2010/02/18 23:50:06 tgl Exp $ * ********************************************************************* */ @@ -2763,7 +2763,7 @@ PLy_spi_prepare(PyObject *self, PyObject *args) PyObject *volatile optr = NULL; char *query; void *tmpplan; - MemoryContext oldcontext; + volatile MemoryContext oldcontext; /* Can't execute more if we have an unhandled error */ if (PLy_error_in_progress) @@ -2934,7 +2934,7 @@ PLy_spi_execute_plan(PyObject *ob, PyObject *list, long limit) int i, rv; PLyPlanObject *plan; - MemoryContext oldcontext; + volatile MemoryContext oldcontext; if (list != NULL) { @@ -3081,7 +3081,7 @@ static PyObject * PLy_spi_execute_query(char *query, long limit) { int rv; - MemoryContext oldcontext; + volatile MemoryContext oldcontext; oldcontext = CurrentMemoryContext; PG_TRY(); @@ -3116,7 +3116,7 @@ static PyObject * PLy_spi_execute_fetch_result(SPITupleTable *tuptable, int rows, int status) { PLyResultObject *result; - MemoryContext oldcontext; + volatile MemoryContext oldcontext; result = (PLyResultObject *) PLy_result_new(); Py_DECREF(result->status); -- 2.40.0