]> git.ipfire.org Git - thirdparty/postgresql.git/commitdiff
Volatile-ize all five places where we expect a PG_TRY block to restore
authorTom Lane <tgl@sss.pgh.pa.us>
Thu, 18 Feb 2010 23:50:27 +0000 (23:50 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Thu, 18 Feb 2010 23:50:27 +0000 (23:50 +0000)
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

index bd87778d06e16ef7289e4c425a1563f629d67de6..8485aa6311b2b24ebe4006fef1d45e70c3529eb6 100644 (file)
@@ -1,7 +1,7 @@
 /**********************************************************************
  * plpython.c - python as a procedural language for PostgreSQL
  *
- *     $PostgreSQL: pgsql/src/pl/plpython/plpython.c,v 1.90.2.5 2009/11/03 08:29:51 petere Exp $
+ *     $PostgreSQL: pgsql/src/pl/plpython/plpython.c,v 1.90.2.6 2010/02/18 23:50:27 tgl Exp $
  *
  *********************************************************************
  */
@@ -2273,7 +2273,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)
@@ -2431,7 +2431,7 @@ PLy_spi_execute_plan(PyObject * ob, PyObject * list, long limit)
        int                     i,
                                rv;
        PLyPlanObject *plan;
-       MemoryContext oldcontext;
+       volatile MemoryContext oldcontext;
 
        if (list != NULL)
        {
@@ -2579,7 +2579,7 @@ static PyObject *
 PLy_spi_execute_query(char *query, long limit)
 {
        int                     rv;
-       MemoryContext oldcontext;
+       volatile MemoryContext oldcontext;
 
        oldcontext = CurrentMemoryContext;
        PG_TRY();
@@ -2616,7 +2616,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);