Mercurial > cpython-lru_cache-weakref
diff Python/compile.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 | 756d57acda85 |
| children | 12e973bdfeee |
line wrap: on
line diff
--- a/Python/compile.c Fri Jul 21 07:59:02 2006 +0000 +++ b/Python/compile.c Fri Jul 21 07:59:47 2006 +0000 @@ -1105,8 +1105,17 @@ u->u_name = name; u->u_varnames = list2dict(u->u_ste->ste_varnames); u->u_cellvars = dictbytype(u->u_ste->ste_symbols, CELL, 0, 0); + if (!u->u_varnames || !u->u_cellvars) { + compiler_unit_free(u); + return 0; + } + u->u_freevars = dictbytype(u->u_ste->ste_symbols, FREE, DEF_FREE_CLASS, PyDict_Size(u->u_cellvars)); + if (!u->u_freevars) { + compiler_unit_free(u); + return 0; + } u->u_blocks = NULL; u->u_tmpname = 0;
