Mercurial > cpython-lru_cache-weakref
diff Python/Python-ast.c @ 49583:2a38771cecdd
update Python-ast.c
| author | Benjamin Peterson <benjamin@python.org> |
|---|---|
| date | Fri, 24 Oct 2008 23:11:02 +0000 |
| parents | 6ae2d4b507a2 |
| children | f66688e69f66 |
line wrap: on
line diff
--- a/Python/Python-ast.c Fri Oct 24 22:28:58 2008 +0000 +++ b/Python/Python-ast.c Fri Oct 24 23:11:02 2008 +0000 @@ -621,11 +621,29 @@ 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;
