From 62f7d15d0bc83f2b1a78cca79691ad65de15381e Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Fri, 17 Jan 1997 21:05:28 +0000 Subject: Use the stack size from the code object and the CO_MAXBLOCKS constant from compile.h. Remove all eval stack overflow checks. --- Python/ceval.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/Python/ceval.c b/Python/ceval.c index 816973f..dbfaf7d 100644 --- a/Python/ceval.c +++ b/Python/ceval.c @@ -364,8 +364,10 @@ eval_code2(co, globals, locals, #define BASIC_PUSH(v) (*stack_pointer++ = (v)) #define BASIC_POP() (*--stack_pointer) +#if 0 #define CHECK_STACK(n) (STACK_LEVEL() + (n) < f->f_nvalues || \ (stack_pointer = extend_stack(f, STACK_LEVEL(), n))) +#endif #ifdef LLTRACE #define PUSH(v) (BASIC_PUSH(v), lltrace && prtrace(TOP(), "push")) @@ -403,8 +405,8 @@ eval_code2(co, globals, locals, globals, /*globals*/ locals, /*locals*/ owner, /*owner*/ - 50, /*nvalues*/ - 20); /*nblocks*/ + co->co_stacksize, /*nvalues*/ + CO_MAXBLOCKS); /*nblocks*/ if (f == NULL) return NULL; @@ -626,10 +628,12 @@ eval_code2(co, globals, locals, } #endif +#ifdef CHECK_STACK if (!CHECK_STACK(3)) { x = NULL; break; } +#endif /* Main switch on opcode */ @@ -1097,10 +1101,12 @@ eval_code2(co, globals, locals, why = WHY_EXCEPTION; } else { +#ifdef CHECK_STACK if (!CHECK_STACK(oparg)) { x = NULL; break; } +#endif for (; --oparg >= 0; ) { w = GETTUPLEITEM(v, oparg); INCREF(w); @@ -1122,10 +1128,12 @@ eval_code2(co, globals, locals, why = WHY_EXCEPTION; } else { +#ifdef CHECK_STACK if (!CHECK_STACK(oparg)) { x = NULL; break; } +#endif for (; --oparg >= 0; ) { w = getlistitem(v, oparg); INCREF(w); -- cgit v0.12