Mercurial > cpython-lru_cache-weakref
diff Python/ceval.c @ 1273:69a066b6b1ff legacy-trunk
(I suggest a recompile after getting this, the ceval.c bugfix may be crucial!)
* Makefile: removed superfluous AR=ar, fixed misleading comment.
* ceval.c: fixed debugging code; save/restore errors in locals_2_fast.
* intrcheck.c: for SunOS etc., turn off syscall resumption.
* regexpr.h: bump number of registers to 100.
| author | Guido van Rossum <guido@python.org> |
|---|---|
| date | Thu, 15 Apr 1993 15:33:52 +0000 |
| parents | 2919b448e385 |
| children | e0464e7115ca |
line wrap: on
line diff
--- a/Python/ceval.c Thu Apr 08 12:56:19 1993 +0000 +++ b/Python/ceval.c Thu Apr 15 15:33:52 1993 +0000 @@ -37,16 +37,18 @@ #include "traceback.h" /* Turn this on if your compiler chokes on the big switch: */ -/* #define CASE_TOO_BIG 1 /**/ +/* #define CASE_TOO_BIG 1 /**/ -#ifndef NDEBUG +/* Turn this on if you want to debug the interpreter: */ +/* (This can be on even if NDEBUG is defined) */ +/* #define DEBUG 1 /**/ + +#if defined(DEBUG) || !defined(NDEBUG) /* For debugging the interpreter: */ #define LLTRACE 1 /* Low-level trace feature */ #define CHECKEXC 1 /* Double-check exception checking */ #endif -#define DEBUG - /* Forward declarations */ @@ -183,7 +185,7 @@ char *name; /* Name used by some instructions */ int needmerge = 0; #ifdef LLTRACE - int lltrace = dictlookup(globals, "__lltrace__") != NULL; + int lltrace; #endif #ifdef DEBUG /* Make it easier to find out where we are with dbx */ @@ -233,6 +235,10 @@ locals = globals; } +#ifdef LLTRACE + lltrace = dictlookup(globals, "__lltrace__") != NULL; +#endif + f = newframeobject( current_frame, /*back*/ co, /*code*/ @@ -1523,6 +1529,7 @@ { /* Merge f->f_locals into f->f_fastlocals */ object *locals, *fast, *map; + object *error_type, *error_value; int i; if (f == NULL) return; @@ -1534,6 +1541,7 @@ if (!is_dictobject(locals) || !is_listobject(fast) || !is_dictobject(map)) return; + err_get(&error_type, &error_value); i = getdictsize(map); while (--i >= 0) { object *key; @@ -1555,6 +1563,7 @@ if (setlistitem(fast, j, value) != 0) err_clear(); } + err_setval(error_type, error_value); } void
