]> granicus.if.org Git - python/commitdiff
bpo-29607: Fix stack_effect computation for CALL_FUNCTION_EX (#202)
authorMatthieu Dartiailh <marul@laposte.net>
Tue, 21 Feb 2017 13:25:22 +0000 (14:25 +0100)
committerSerhiy Storchaka <storchaka@gmail.com>
Tue, 21 Feb 2017 13:25:22 +0000 (15:25 +0200)
Misc/NEWS
Python/compile.c

index 0c2122f8ca04d1bdbb394872b0ac1337caf3e627..4d1cf298ae5df91385e0cb9b7b253d012c1bc4e1 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -10,6 +10,9 @@ What's New in Python 3.7.0 alpha 1?
 Core and Builtins
 -----------------
 
+- bpo-29607: Fix stack_effect computation for CALL_FUNCTION_EX. 
+  Patch by Matthieu Dartiailh.
+
 - bpo-29602: Fix incorrect handling of signed zeros in complex constructor for
   complex subclasses and for inputs having a __complex__ method. Patch
   by Serhiy Storchaka.
index 17fef314829a8edaf3c9afcfc66a2e514ef19a7a..8bf4ae1c3a118b1cfe13f0dbf4b5988321e4452a 100644 (file)
@@ -1045,7 +1045,7 @@ PyCompile_OpcodeStackEffect(int opcode, int oparg)
         case CALL_FUNCTION_KW:
             return -oparg-1;
         case CALL_FUNCTION_EX:
-            return - ((oparg & 0x01) != 0) - ((oparg & 0x02) != 0);
+            return -1 - ((oparg & 0x01) != 0);
         case MAKE_FUNCTION:
             return -1 - ((oparg & 0x01) != 0) - ((oparg & 0x02) != 0) -
                 ((oparg & 0x04) != 0) - ((oparg & 0x08) != 0);