]> granicus.if.org Git - python/commitdiff
update Python-ast.c
authorBenjamin Peterson <benjamin@python.org>
Fri, 24 Oct 2008 23:11:02 +0000 (23:11 +0000)
committerBenjamin Peterson <benjamin@python.org>
Fri, 24 Oct 2008 23:11:02 +0000 (23:11 +0000)
Python/Python-ast.c

index bf7e4ac1f7aea0dde1bd068fdc6f1e0576c22773..725256350c315ec72fb3143f59e652a0f6646f5d 100644 (file)
@@ -621,11 +621,29 @@ static int obj2ast_int(PyObject* obj, int* out, PyArena* arena)
     return 0;
 }
 
+static int add_ast_fields()
+{
+    PyObject *empty_tuple, *d;
+    if (PyType_Ready(&AST_type) < 0)
+        return -1;
+    d = AST_type.tp_dict;
+    empty_tuple = PyTuple_New(0);
+    if (!empty_tuple ||
+        PyDict_SetItemString(d, "_fields", empty_tuple) < 0 ||
+        PyDict_SetItemString(d, "_attributes", empty_tuple) < 0) {
+        Py_XDECREF(empty_tuple);
+        return -1;
+    }
+    Py_DECREF(empty_tuple);
+    return 0;
+}
+
 
 static int init_types(void)
 {
         static int initialized;
         if (initialized) return 1;
+        if (add_ast_fields() < 0) return 0;
         mod_type = make_type("mod", &AST_type, NULL, 0);
         if (!mod_type) return 0;
         if (!add_attributes(mod_type, NULL, 0)) return 0;