diff Python/ceval.c @ 23785:7a32c2356e56 legacy-trunk

SF bug 567538: Generator can crash the interpreter (Finn Bock). This was a simple typo. Strange that the compiler didn't catch it! Instead of WHY_CONTINUE, two tests used CONTINUE_LOOP, which isn't a why_code at all, but an opcode; but even though 'why' is declared as an enum, comparing it to an int is apparently not even worth a warning -- not in gcc, and not in VC++. :-( Will fix in 2.2 too.
author Guido van Rossum <guido@python.org>
date Wed, 12 Jun 2002 03:45:21 +0000
parents 73249abed683
children e4272ad1a636
line wrap: on
line diff
--- a/Python/ceval.c	Wed Jun 12 03:28:57 2002 +0000
+++ b/Python/ceval.c	Wed Jun 12 03:45:21 2002 +0000
@@ -1543,7 +1543,7 @@
 				why = (enum why_code) PyInt_AsLong(v);
 				if (why == WHY_RETURN ||
 				    why == WHY_YIELD ||
-				    why == CONTINUE_LOOP)
+				    why == WHY_CONTINUE)
 					retval = POP();
 			}
 			else if (PyString_Check(v) || PyClass_Check(v)) {
@@ -2293,7 +2293,7 @@
 				}
 				else {
 					if (why == WHY_RETURN ||
-					    why == CONTINUE_LOOP)
+					    why == WHY_CONTINUE)
 						PUSH(retval);
 					v = PyInt_FromLong((long)why);
 					PUSH(v);