diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2010-02-18 23:50:20 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2010-02-18 23:50:20 +0000 |
commit | 08181b427c1b3a4537c331b30492da1881a5b341 (patch) | |
tree | 8294f0b28edd0298464303912ea6e96f59b8080f | |
parent | 1a709257a9f0b1e4c58f92e8efe934bc600656e4 (diff) |
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.
-rw-r--r-- | src/pl/plpython/plpython.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/pl/plpython/plpython.c b/src/pl/plpython/plpython.c index dffb1e3d689..aa6ac71cb1e 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.106.2.1 2009/11/03 08:44:52 petere Exp $ + * $PostgreSQL: pgsql/src/pl/plpython/plpython.c,v 1.106.2.2 2010/02/18 23:50:20 tgl Exp $ * ********************************************************************* */ @@ -2292,7 +2292,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) @@ -2457,7 +2457,7 @@ PLy_spi_execute_plan(PyObject * ob, PyObject * list, long limit) int i, rv; PLyPlanObject *plan; - MemoryContext oldcontext; + volatile MemoryContext oldcontext; if (list != NULL) { @@ -2605,7 +2605,7 @@ static PyObject * PLy_spi_execute_query(char *query, long limit) { int rv; - MemoryContext oldcontext; + volatile MemoryContext oldcontext; oldcontext = CurrentMemoryContext; PG_TRY(); @@ -2642,7 +2642,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); |