diff Modules/parsermodule.c @ 11297:2560236ecedb legacy-trunk

parser__pickler(): Don't drop the third argument to parser_ast2tuple(). Create an temporary empty dictionary to use. Bug reported by Mark Favas <m.favas@per.dem.csiro.au>. Fix a couple of comments.
author Fred Drake <fdrake@acm.org>
date Mon, 20 Sep 1999 22:32:18 +0000
parents c0b86a44a120
children 51c217454953
line wrap: on
line diff
--- a/Modules/parsermodule.c	Mon Sep 20 13:28:18 1999 +0000
+++ b/Modules/parsermodule.c	Mon Sep 20 22:32:18 1999 +0000
@@ -338,7 +338,7 @@
 }   /* parser_free() */
 
 
-/*  parser_ast2tuple(PyObject* self, PyObject* args)
+/*  parser_ast2tuple(PyObject* self, PyObject* args, PyObject* kw)
  *
  *  This provides conversion from a node* to a tuple object that can be
  *  returned to the Python-level caller.  The AST object is not modified.
@@ -380,9 +380,9 @@
 }   /* parser_ast2tuple() */
 
 
-/*  parser_ast2tuple(PyObject* self, PyObject* args)
+/*  parser_ast2list(PyObject* self, PyObject* args, PyObject* kw)
  *
- *  This provides conversion from a node* to a tuple object that can be
+ *  This provides conversion from a node* to a list object that can be
  *  returned to the Python-level caller.  The AST object is not modified.
  *
  */
@@ -2717,21 +2717,27 @@
     NOTE(ARGUNUSED(self))
     PyObject *result = NULL;
     PyObject *ast = NULL;
+    PyObject *empty_dict = NULL;
 
     if (PyArg_ParseTuple(args, "O!:_pickler", &PyAST_Type, &ast)) {
 	PyObject *newargs;
 	PyObject *tuple;
 
-	if ((newargs = Py_BuildValue("Oi", ast, 1)) == NULL)
+        if ((empty_dict = PyDict_New()) == NULL)
+            goto finally;
+        if ((newargs = Py_BuildValue("Oi", ast, 1)) == NULL)
 	    goto finally;
-	tuple = parser_ast2tuple((PyAST_Object*)NULL, newargs);
+	tuple = parser_ast2tuple((PyAST_Object*)NULL, newargs, empty_dict);
 	if (tuple != NULL) {
 	    result = Py_BuildValue("O(O)", pickle_constructor, tuple);
 	    Py_DECREF(tuple);
 	}
+        Py_DECREF(empty_dict);
 	Py_DECREF(newargs);
     }
   finally:
+    Py_XDECREF(empty_dict);
+
     return (result);
 
 }   /* parser__pickler() */