[Python-checkins] commit of r41571 - in python/branches/ast-objects: Parser Python

martin.v.loewis python-checkins at python.org
Wed Nov 30 23:57:11 CET 2005


Author: martin.v.loewis
Date: Wed Nov 30 23:57:06 2005
New Revision: 41571

Modified:
   python/branches/ast-objects/Parser/asdl_c.py
   python/branches/ast-objects/Python/Python-ast.c
Log:
add missing INCREFs in ctor.


Modified: python/branches/ast-objects/Parser/asdl_c.py
==============================================================================
--- python/branches/ast-objects/Parser/asdl_c.py	(original)
+++ python/branches/ast-objects/Parser/asdl_c.py	Wed Nov 30 23:57:06 2005
@@ -213,8 +213,12 @@
         emit("if (result == NULL)", 1)
         emit("return NULL;", 2)
         for argtype, argname, opt in args:
+            if argtype == "PyObject*":
+                emit("Py_INCREF(%s);" % argname, 1)
             emit("result->%s = %s;" % (argname, argname), 1)
         for argtype, argname, opt in attrs:
+            if argtype == "PyObject*":
+                emit("Py_INCREF(%s);" % argname, 1)
             emit("result->_base.%s = %s;" % (argname, argname), 1)
         emit("return (PyObject*)result;", 1)
         emit("}")

Modified: python/branches/ast-objects/Python/Python-ast.c
==============================================================================
--- python/branches/ast-objects/Python/Python-ast.c	(original)
+++ python/branches/ast-objects/Python/Python-ast.c	Wed Nov 30 23:57:06 2005
@@ -54,6 +54,7 @@
         struct _Module *result = PyObject_New(struct _Module, &Py_Module_Type);
         if (result == NULL)
                 return NULL;
+        Py_INCREF(body);
         result->body = body;
         return (PyObject*)result;
 }
@@ -116,6 +117,7 @@
         struct _Interactive *result = PyObject_New(struct _Interactive, &Py_Interactive_Type);
         if (result == NULL)
                 return NULL;
+        Py_INCREF(body);
         result->body = body;
         return (PyObject*)result;
 }
@@ -178,6 +180,7 @@
         struct _Expression *result = PyObject_New(struct _Expression, &Py_Expression_Type);
         if (result == NULL)
                 return NULL;
+        Py_INCREF(body);
         result->body = body;
         return (PyObject*)result;
 }
@@ -240,6 +243,7 @@
         struct _Suite *result = PyObject_New(struct _Suite, &Py_Suite_Type);
         if (result == NULL)
                 return NULL;
+        Py_INCREF(body);
         result->body = body;
         return (PyObject*)result;
 }
@@ -348,9 +352,13 @@
         struct _FunctionDef *result = PyObject_New(struct _FunctionDef, &Py_FunctionDef_Type);
         if (result == NULL)
                 return NULL;
+        Py_INCREF(name);
         result->name = name;
+        Py_INCREF(args);
         result->args = args;
+        Py_INCREF(body);
         result->body = body;
+        Py_INCREF(decorators);
         result->decorators = decorators;
         result->_base.lineno = lineno;
         return (PyObject*)result;
@@ -417,8 +425,11 @@
         struct _ClassDef *result = PyObject_New(struct _ClassDef, &Py_ClassDef_Type);
         if (result == NULL)
                 return NULL;
+        Py_INCREF(name);
         result->name = name;
+        Py_INCREF(bases);
         result->bases = bases;
+        Py_INCREF(body);
         result->body = body;
         result->_base.lineno = lineno;
         return (PyObject*)result;
@@ -484,6 +495,7 @@
         struct _Return *result = PyObject_New(struct _Return, &Py_Return_Type);
         if (result == NULL)
                 return NULL;
+        Py_INCREF(value);
         result->value = value;
         result->_base.lineno = lineno;
         return (PyObject*)result;
@@ -547,6 +559,7 @@
         struct _Delete *result = PyObject_New(struct _Delete, &Py_Delete_Type);
         if (result == NULL)
                 return NULL;
+        Py_INCREF(targets);
         result->targets = targets;
         result->_base.lineno = lineno;
         return (PyObject*)result;
@@ -610,7 +623,9 @@
         struct _Assign *result = PyObject_New(struct _Assign, &Py_Assign_Type);
         if (result == NULL)
                 return NULL;
+        Py_INCREF(targets);
         result->targets = targets;
+        Py_INCREF(value);
         result->value = value;
         result->_base.lineno = lineno;
         return (PyObject*)result;
@@ -675,8 +690,11 @@
         struct _AugAssign *result = PyObject_New(struct _AugAssign, &Py_AugAssign_Type);
         if (result == NULL)
                 return NULL;
+        Py_INCREF(target);
         result->target = target;
+        Py_INCREF(op);
         result->op = op;
+        Py_INCREF(value);
         result->value = value;
         result->_base.lineno = lineno;
         return (PyObject*)result;
@@ -742,8 +760,11 @@
         struct _Print *result = PyObject_New(struct _Print, &Py_Print_Type);
         if (result == NULL)
                 return NULL;
+        Py_INCREF(dest);
         result->dest = dest;
+        Py_INCREF(values);
         result->values = values;
+        Py_INCREF(nl);
         result->nl = nl;
         result->_base.lineno = lineno;
         return (PyObject*)result;
@@ -810,9 +831,13 @@
         struct _For *result = PyObject_New(struct _For, &Py_For_Type);
         if (result == NULL)
                 return NULL;
+        Py_INCREF(target);
         result->target = target;
+        Py_INCREF(iter);
         result->iter = iter;
+        Py_INCREF(body);
         result->body = body;
+        Py_INCREF(orelse);
         result->orelse = orelse;
         result->_base.lineno = lineno;
         return (PyObject*)result;
@@ -879,8 +904,11 @@
         struct _While *result = PyObject_New(struct _While, &Py_While_Type);
         if (result == NULL)
                 return NULL;
+        Py_INCREF(test);
         result->test = test;
+        Py_INCREF(body);
         result->body = body;
+        Py_INCREF(orelse);
         result->orelse = orelse;
         result->_base.lineno = lineno;
         return (PyObject*)result;
@@ -946,8 +974,11 @@
         struct _If *result = PyObject_New(struct _If, &Py_If_Type);
         if (result == NULL)
                 return NULL;
+        Py_INCREF(test);
         result->test = test;
+        Py_INCREF(body);
         result->body = body;
+        Py_INCREF(orelse);
         result->orelse = orelse;
         result->_base.lineno = lineno;
         return (PyObject*)result;
@@ -1013,8 +1044,11 @@
         struct _Raise *result = PyObject_New(struct _Raise, &Py_Raise_Type);
         if (result == NULL)
                 return NULL;
+        Py_INCREF(type);
         result->type = type;
+        Py_INCREF(inst);
         result->inst = inst;
+        Py_INCREF(tback);
         result->tback = tback;
         result->_base.lineno = lineno;
         return (PyObject*)result;
@@ -1081,8 +1115,11 @@
         struct _TryExcept *result = PyObject_New(struct _TryExcept, &Py_TryExcept_Type);
         if (result == NULL)
                 return NULL;
+        Py_INCREF(body);
         result->body = body;
+        Py_INCREF(handlers);
         result->handlers = handlers;
+        Py_INCREF(orelse);
         result->orelse = orelse;
         result->_base.lineno = lineno;
         return (PyObject*)result;
@@ -1148,7 +1185,9 @@
         struct _TryFinally *result = PyObject_New(struct _TryFinally, &Py_TryFinally_Type);
         if (result == NULL)
                 return NULL;
+        Py_INCREF(body);
         result->body = body;
+        Py_INCREF(finalbody);
         result->finalbody = finalbody;
         result->_base.lineno = lineno;
         return (PyObject*)result;
@@ -1213,7 +1252,9 @@
         struct _Assert *result = PyObject_New(struct _Assert, &Py_Assert_Type);
         if (result == NULL)
                 return NULL;
+        Py_INCREF(test);
         result->test = test;
+        Py_INCREF(msg);
         result->msg = msg;
         result->_base.lineno = lineno;
         return (PyObject*)result;
@@ -1278,6 +1319,7 @@
         struct _Import *result = PyObject_New(struct _Import, &Py_Import_Type);
         if (result == NULL)
                 return NULL;
+        Py_INCREF(names);
         result->names = names;
         result->_base.lineno = lineno;
         return (PyObject*)result;
@@ -1341,7 +1383,9 @@
         struct _ImportFrom *result = PyObject_New(struct _ImportFrom, &Py_ImportFrom_Type);
         if (result == NULL)
                 return NULL;
+        Py_INCREF(module);
         result->module = module;
+        Py_INCREF(names);
         result->names = names;
         result->_base.lineno = lineno;
         return (PyObject*)result;
@@ -1406,8 +1450,11 @@
         struct _Exec *result = PyObject_New(struct _Exec, &Py_Exec_Type);
         if (result == NULL)
                 return NULL;
+        Py_INCREF(body);
         result->body = body;
+        Py_INCREF(globals);
         result->globals = globals;
+        Py_INCREF(locals);
         result->locals = locals;
         result->_base.lineno = lineno;
         return (PyObject*)result;
@@ -1473,6 +1520,7 @@
         struct _Global *result = PyObject_New(struct _Global, &Py_Global_Type);
         if (result == NULL)
                 return NULL;
+        Py_INCREF(names);
         result->names = names;
         result->_base.lineno = lineno;
         return (PyObject*)result;
@@ -1536,6 +1584,7 @@
         struct _Expr *result = PyObject_New(struct _Expr, &Py_Expr_Type);
         if (result == NULL)
                 return NULL;
+        Py_INCREF(value);
         result->value = value;
         result->_base.lineno = lineno;
         return (PyObject*)result;
@@ -1827,7 +1876,9 @@
         struct _BoolOp *result = PyObject_New(struct _BoolOp, &Py_BoolOp_Type);
         if (result == NULL)
                 return NULL;
+        Py_INCREF(op);
         result->op = op;
+        Py_INCREF(values);
         result->values = values;
         result->_base.lineno = lineno;
         return (PyObject*)result;
@@ -1892,8 +1943,11 @@
         struct _BinOp *result = PyObject_New(struct _BinOp, &Py_BinOp_Type);
         if (result == NULL)
                 return NULL;
+        Py_INCREF(left);
         result->left = left;
+        Py_INCREF(op);
         result->op = op;
+        Py_INCREF(right);
         result->right = right;
         result->_base.lineno = lineno;
         return (PyObject*)result;
@@ -1959,7 +2013,9 @@
         struct _UnaryOp *result = PyObject_New(struct _UnaryOp, &Py_UnaryOp_Type);
         if (result == NULL)
                 return NULL;
+        Py_INCREF(op);
         result->op = op;
+        Py_INCREF(operand);
         result->operand = operand;
         result->_base.lineno = lineno;
         return (PyObject*)result;
@@ -2024,7 +2080,9 @@
         struct _Lambda *result = PyObject_New(struct _Lambda, &Py_Lambda_Type);
         if (result == NULL)
                 return NULL;
+        Py_INCREF(args);
         result->args = args;
+        Py_INCREF(body);
         result->body = body;
         result->_base.lineno = lineno;
         return (PyObject*)result;
@@ -2089,7 +2147,9 @@
         struct _Dict *result = PyObject_New(struct _Dict, &Py_Dict_Type);
         if (result == NULL)
                 return NULL;
+        Py_INCREF(keys);
         result->keys = keys;
+        Py_INCREF(values);
         result->values = values;
         result->_base.lineno = lineno;
         return (PyObject*)result;
@@ -2154,7 +2214,9 @@
         struct _ListComp *result = PyObject_New(struct _ListComp, &Py_ListComp_Type);
         if (result == NULL)
                 return NULL;
+        Py_INCREF(elt);
         result->elt = elt;
+        Py_INCREF(generators);
         result->generators = generators;
         result->_base.lineno = lineno;
         return (PyObject*)result;
@@ -2219,7 +2281,9 @@
         struct _GeneratorExp *result = PyObject_New(struct _GeneratorExp, &Py_GeneratorExp_Type);
         if (result == NULL)
                 return NULL;
+        Py_INCREF(elt);
         result->elt = elt;
+        Py_INCREF(generators);
         result->generators = generators;
         result->_base.lineno = lineno;
         return (PyObject*)result;
@@ -2284,6 +2348,7 @@
         struct _Yield *result = PyObject_New(struct _Yield, &Py_Yield_Type);
         if (result == NULL)
                 return NULL;
+        Py_INCREF(value);
         result->value = value;
         result->_base.lineno = lineno;
         return (PyObject*)result;
@@ -2347,8 +2412,11 @@
         struct _Compare *result = PyObject_New(struct _Compare, &Py_Compare_Type);
         if (result == NULL)
                 return NULL;
+        Py_INCREF(left);
         result->left = left;
+        Py_INCREF(ops);
         result->ops = ops;
+        Py_INCREF(comparators);
         result->comparators = comparators;
         result->_base.lineno = lineno;
         return (PyObject*)result;
@@ -2415,10 +2483,15 @@
         struct _Call *result = PyObject_New(struct _Call, &Py_Call_Type);
         if (result == NULL)
                 return NULL;
+        Py_INCREF(func);
         result->func = func;
+        Py_INCREF(args);
         result->args = args;
+        Py_INCREF(keywords);
         result->keywords = keywords;
+        Py_INCREF(starargs);
         result->starargs = starargs;
+        Py_INCREF(kwargs);
         result->kwargs = kwargs;
         result->_base.lineno = lineno;
         return (PyObject*)result;
@@ -2486,6 +2559,7 @@
         struct _Repr *result = PyObject_New(struct _Repr, &Py_Repr_Type);
         if (result == NULL)
                 return NULL;
+        Py_INCREF(value);
         result->value = value;
         result->_base.lineno = lineno;
         return (PyObject*)result;
@@ -2549,6 +2623,7 @@
         struct _Num *result = PyObject_New(struct _Num, &Py_Num_Type);
         if (result == NULL)
                 return NULL;
+        Py_INCREF(n);
         result->n = n;
         result->_base.lineno = lineno;
         return (PyObject*)result;
@@ -2612,6 +2687,7 @@
         struct _Str *result = PyObject_New(struct _Str, &Py_Str_Type);
         if (result == NULL)
                 return NULL;
+        Py_INCREF(s);
         result->s = s;
         result->_base.lineno = lineno;
         return (PyObject*)result;
@@ -2675,8 +2751,11 @@
         struct _Attribute *result = PyObject_New(struct _Attribute, &Py_Attribute_Type);
         if (result == NULL)
                 return NULL;
+        Py_INCREF(value);
         result->value = value;
+        Py_INCREF(attr);
         result->attr = attr;
+        Py_INCREF(ctx);
         result->ctx = ctx;
         result->_base.lineno = lineno;
         return (PyObject*)result;
@@ -2742,8 +2821,11 @@
         struct _Subscript *result = PyObject_New(struct _Subscript, &Py_Subscript_Type);
         if (result == NULL)
                 return NULL;
+        Py_INCREF(value);
         result->value = value;
+        Py_INCREF(slice);
         result->slice = slice;
+        Py_INCREF(ctx);
         result->ctx = ctx;
         result->_base.lineno = lineno;
         return (PyObject*)result;
@@ -2809,7 +2891,9 @@
         struct _Name *result = PyObject_New(struct _Name, &Py_Name_Type);
         if (result == NULL)
                 return NULL;
+        Py_INCREF(id);
         result->id = id;
+        Py_INCREF(ctx);
         result->ctx = ctx;
         result->_base.lineno = lineno;
         return (PyObject*)result;
@@ -2874,7 +2958,9 @@
         struct _List *result = PyObject_New(struct _List, &Py_List_Type);
         if (result == NULL)
                 return NULL;
+        Py_INCREF(elts);
         result->elts = elts;
+        Py_INCREF(ctx);
         result->ctx = ctx;
         result->_base.lineno = lineno;
         return (PyObject*)result;
@@ -2939,7 +3025,9 @@
         struct _Tuple *result = PyObject_New(struct _Tuple, &Py_Tuple_Type);
         if (result == NULL)
                 return NULL;
+        Py_INCREF(elts);
         result->elts = elts;
+        Py_INCREF(ctx);
         result->ctx = ctx;
         result->_base.lineno = lineno;
         return (PyObject*)result;
@@ -3109,8 +3197,11 @@
         struct _Slice *result = PyObject_New(struct _Slice, &Py_Slice_Type);
         if (result == NULL)
                 return NULL;
+        Py_INCREF(lower);
         result->lower = lower;
+        Py_INCREF(upper);
         result->upper = upper;
+        Py_INCREF(step);
         result->step = step;
         return (PyObject*)result;
 }
@@ -3175,6 +3266,7 @@
         struct _ExtSlice *result = PyObject_New(struct _ExtSlice, &Py_ExtSlice_Type);
         if (result == NULL)
                 return NULL;
+        Py_INCREF(dims);
         result->dims = dims;
         return (PyObject*)result;
 }
@@ -3237,6 +3329,7 @@
         struct _Index *result = PyObject_New(struct _Index, &Py_Index_Type);
         if (result == NULL)
                 return NULL;
+        Py_INCREF(value);
         result->value = value;
         return (PyObject*)result;
 }
@@ -3299,8 +3392,11 @@
         struct _comprehension *result = PyObject_New(struct _comprehension, &Py_comprehension_Type);
         if (result == NULL)
                 return NULL;
+        Py_INCREF(target);
         result->target = target;
+        Py_INCREF(iter);
         result->iter = iter;
+        Py_INCREF(ifs);
         result->ifs = ifs;
         return (PyObject*)result;
 }
@@ -3365,8 +3461,11 @@
         struct _excepthandler *result = PyObject_New(struct _excepthandler, &Py_excepthandler_Type);
         if (result == NULL)
                 return NULL;
+        Py_INCREF(type);
         result->type = type;
+        Py_INCREF(name);
         result->name = name;
+        Py_INCREF(body);
         result->body = body;
         return (PyObject*)result;
 }
@@ -3432,9 +3531,13 @@
         struct _arguments *result = PyObject_New(struct _arguments, &Py_arguments_Type);
         if (result == NULL)
                 return NULL;
+        Py_INCREF(args);
         result->args = args;
+        Py_INCREF(vararg);
         result->vararg = vararg;
+        Py_INCREF(kwarg);
         result->kwarg = kwarg;
+        Py_INCREF(defaults);
         result->defaults = defaults;
         return (PyObject*)result;
 }
@@ -3500,7 +3603,9 @@
         struct _keyword *result = PyObject_New(struct _keyword, &Py_keyword_Type);
         if (result == NULL)
                 return NULL;
+        Py_INCREF(arg);
         result->arg = arg;
+        Py_INCREF(value);
         result->value = value;
         return (PyObject*)result;
 }
@@ -3564,7 +3669,9 @@
         struct _alias *result = PyObject_New(struct _alias, &Py_alias_Type);
         if (result == NULL)
                 return NULL;
+        Py_INCREF(name);
         result->name = name;
+        Py_INCREF(asname);
         result->asname = asname;
         return (PyObject*)result;
 }


More information about the Python-checkins mailing list