Mercurial > cpython-lru_cache-weakref
diff Python/pythonrun.c @ 39131:7c09b66f04bd legacy-trunk
Handle more memory allocation failures without crashing.
| author | Neal Norwitz <nnorwitz@gmail.com> |
|---|---|
| date | Fri, 21 Jul 2006 07:59:47 +0000 |
| parents | aa85791f5991 |
| children | 12e973bdfeee |
line wrap: on
line diff
--- a/Python/pythonrun.c Fri Jul 21 07:59:02 2006 +0000 +++ b/Python/pythonrun.c Fri Jul 21 07:59:47 2006 +0000 @@ -1204,8 +1204,12 @@ { PyObject *ret = NULL; PyArena *arena = PyArena_New(); - mod_ty mod = PyParser_ASTFromString(str, "<string>", start, flags, - arena); + mod_ty mod; + + if (arena == NULL) + return NULL; + + mod = PyParser_ASTFromString(str, "<string>", start, flags, arena); if (mod != NULL) ret = run_mod(mod, "<string>", globals, locals, flags, arena); PyArena_Free(arena); @@ -1218,8 +1222,13 @@ { PyObject *ret; PyArena *arena = PyArena_New(); - mod_ty mod = PyParser_ASTFromFile(fp, filename, start, 0, 0, - flags, NULL, arena); + mod_ty mod; + + if (arena == NULL) + return NULL; + + mod = PyParser_ASTFromFile(fp, filename, start, 0, 0, + flags, NULL, arena); if (mod == NULL) { PyArena_Free(arena); return NULL;
