Mercurial > cpython-lru_cache-weakref
changeset 84679:cf8f42eadbd0
Issue #18408: Fix Python-ast.c: handle init_types() failure (ex: MemoryError)
| author | Victor Stinner <victor.stinner@gmail.com> |
|---|---|
| date | Wed, 17 Jul 2013 00:17:15 +0200 |
| parents | c8696ee49291 |
| children | a685f4c6e0b6 |
| files | Parser/asdl_c.py Python/Python-ast.c |
| diffstat | 2 files changed, 12 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/Parser/asdl_c.py Wed Jul 17 00:13:52 2013 +0200 +++ b/Parser/asdl_c.py Wed Jul 17 00:17:15 2013 +0200 @@ -1191,7 +1191,8 @@ CODE = """ PyObject* PyAST_mod2obj(mod_ty t) { - init_types(); + if (!init_types()) + return NULL; return ast2obj_mod(t); } @@ -1205,7 +1206,8 @@ int isinstance; assert(0 <= mode && mode <= 2); - init_types(); + if (!init_types()) + return NULL; isinstance = PyObject_IsInstance(ast, req_type[mode]); if (isinstance == -1) @@ -1223,7 +1225,8 @@ int PyAST_Check(PyObject* obj) { - init_types(); + if (!init_types()) + return -1; return PyObject_IsInstance(obj, (PyObject*)&AST_type); } """
--- a/Python/Python-ast.c Wed Jul 17 00:13:52 2013 +0200 +++ b/Python/Python-ast.c Wed Jul 17 00:17:15 2013 +0200 @@ -7188,7 +7188,8 @@ PyObject* PyAST_mod2obj(mod_ty t) { - init_types(); + if (!init_types()) + return NULL; return ast2obj_mod(t); } @@ -7202,7 +7203,8 @@ int isinstance; assert(0 <= mode && mode <= 2); - init_types(); + if (!init_types()) + return NULL; isinstance = PyObject_IsInstance(ast, req_type[mode]); if (isinstance == -1) @@ -7220,7 +7222,8 @@ int PyAST_Check(PyObject* obj) { - init_types(); + if (!init_types()) + return -1; return PyObject_IsInstance(obj, (PyObject*)&AST_type); }
