@@ -649,14 +649,14 @@ eval_code2(co, globals, locals,
649649 case POP_TOP :
650650 v = POP ();
651651 DECREF (v );
652- break ;
652+ continue ;
653653
654654 case ROT_TWO :
655655 v = POP ();
656656 w = POP ();
657657 PUSH (v );
658658 PUSH (w );
659- break ;
659+ continue ;
660660
661661 case ROT_THREE :
662662 v = POP ();
@@ -665,47 +665,52 @@ eval_code2(co, globals, locals,
665665 PUSH (v );
666666 PUSH (x );
667667 PUSH (w );
668- break ;
668+ continue ;
669669
670670 case DUP_TOP :
671671 v = TOP ();
672672 INCREF (v );
673673 PUSH (v );
674- break ;
674+ continue ;
675675
676676 case UNARY_POSITIVE :
677677 v = POP ();
678678 x = pos (v );
679679 DECREF (v );
680680 PUSH (x );
681+ if (x != NULL ) continue ;
681682 break ;
682683
683684 case UNARY_NEGATIVE :
684685 v = POP ();
685686 x = neg (v );
686687 DECREF (v );
687688 PUSH (x );
689+ if (x != NULL ) continue ;
688690 break ;
689691
690692 case UNARY_NOT :
691693 v = POP ();
692694 x = not (v );
693695 DECREF (v );
694696 PUSH (x );
697+ if (x != NULL ) continue ;
695698 break ;
696699
697700 case UNARY_CONVERT :
698701 v = POP ();
699702 x = reprobject (v );
700703 DECREF (v );
701704 PUSH (x );
705+ if (x != NULL ) continue ;
702706 break ;
703707
704708 case UNARY_INVERT :
705709 v = POP ();
706710 x = invert (v );
707711 DECREF (v );
708712 PUSH (x );
713+ if (x != NULL ) continue ;
709714 break ;
710715
711716 case BINARY_POWER :
@@ -715,6 +720,7 @@ eval_code2(co, globals, locals,
715720 DECREF (v );
716721 DECREF (w );
717722 PUSH (x );
723+ if (x != NULL ) continue ;
718724 break ;
719725
720726 case BINARY_MULTIPLY :
@@ -724,6 +730,7 @@ eval_code2(co, globals, locals,
724730 DECREF (v );
725731 DECREF (w );
726732 PUSH (x );
733+ if (x != NULL ) continue ;
727734 break ;
728735
729736 case BINARY_DIVIDE :
@@ -733,6 +740,7 @@ eval_code2(co, globals, locals,
733740 DECREF (v );
734741 DECREF (w );
735742 PUSH (x );
743+ if (x != NULL ) continue ;
736744 break ;
737745
738746 case BINARY_MODULO :
@@ -742,6 +750,7 @@ eval_code2(co, globals, locals,
742750 DECREF (v );
743751 DECREF (w );
744752 PUSH (x );
753+ if (x != NULL ) continue ;
745754 break ;
746755
747756 case BINARY_ADD :
@@ -751,6 +760,7 @@ eval_code2(co, globals, locals,
751760 DECREF (v );
752761 DECREF (w );
753762 PUSH (x );
763+ if (x != NULL ) continue ;
754764 break ;
755765
756766 case BINARY_SUBTRACT :
@@ -760,6 +770,7 @@ eval_code2(co, globals, locals,
760770 DECREF (v );
761771 DECREF (w );
762772 PUSH (x );
773+ if (x != NULL ) continue ;
763774 break ;
764775
765776 case BINARY_SUBSCR :
@@ -769,6 +780,7 @@ eval_code2(co, globals, locals,
769780 DECREF (v );
770781 DECREF (w );
771782 PUSH (x );
783+ if (x != NULL ) continue ;
772784 break ;
773785
774786 case BINARY_LSHIFT :
@@ -778,6 +790,7 @@ eval_code2(co, globals, locals,
778790 DECREF (v );
779791 DECREF (w );
780792 PUSH (x );
793+ if (x != NULL ) continue ;
781794 break ;
782795
783796 case BINARY_RSHIFT :
@@ -787,6 +800,7 @@ eval_code2(co, globals, locals,
787800 DECREF (v );
788801 DECREF (w );
789802 PUSH (x );
803+ if (x != NULL ) continue ;
790804 break ;
791805
792806 case BINARY_AND :
@@ -796,6 +810,7 @@ eval_code2(co, globals, locals,
796810 DECREF (v );
797811 DECREF (w );
798812 PUSH (x );
813+ if (x != NULL ) continue ;
799814 break ;
800815
801816 case BINARY_XOR :
@@ -805,6 +820,7 @@ eval_code2(co, globals, locals,
805820 DECREF (v );
806821 DECREF (w );
807822 PUSH (x );
823+ if (x != NULL ) continue ;
808824 break ;
809825
810826 case BINARY_OR :
@@ -814,6 +830,7 @@ eval_code2(co, globals, locals,
814830 DECREF (v );
815831 DECREF (w );
816832 PUSH (x );
833+ if (x != NULL ) continue ;
817834 break ;
818835
819836 case SLICE + 0 :
@@ -834,6 +851,7 @@ eval_code2(co, globals, locals,
834851 XDECREF (v );
835852 XDECREF (w );
836853 PUSH (x );
854+ if (x != NULL ) continue ;
837855 break ;
838856
839857 case STORE_SLICE + 0 :
@@ -855,6 +873,7 @@ eval_code2(co, globals, locals,
855873 DECREF (u );
856874 XDECREF (v );
857875 XDECREF (w );
876+ if (err == 0 ) continue ;
858877 break ;
859878
860879 case DELETE_SLICE + 0 :
@@ -875,6 +894,7 @@ eval_code2(co, globals, locals,
875894 DECREF (u );
876895 XDECREF (v );
877896 XDECREF (w );
897+ if (err == 0 ) continue ;
878898 break ;
879899
880900 case STORE_SUBSCR :
@@ -886,6 +906,7 @@ eval_code2(co, globals, locals,
886906 DECREF (u );
887907 DECREF (v );
888908 DECREF (w );
909+ if (err == 0 ) continue ;
889910 break ;
890911
891912 case DELETE_SUBSCR :
@@ -895,6 +916,7 @@ eval_code2(co, globals, locals,
895916 err = assign_subscript (v , w , (object * )NULL );
896917 DECREF (v );
897918 DECREF (w );
919+ if (err == 0 ) continue ;
898920 break ;
899921
900922 case PRINT_EXPR :
@@ -929,6 +951,7 @@ eval_code2(co, globals, locals,
929951 softspace (w , 0 );
930952 }
931953 DECREF (v );
954+ if (err == 0 ) continue ;
932955 break ;
933956
934957 case PRINT_NEWLINE :
@@ -1294,6 +1317,7 @@ eval_code2(co, globals, locals,
12941317#endif
12951318 INCREF (x );
12961319 PUSH (x );
1320+ if (x != NULL ) continue ;
12971321 break ;
12981322
12991323 case STORE_FAST :
@@ -1307,7 +1331,7 @@ eval_code2(co, globals, locals,
13071331 }
13081332#endif
13091333 SETLOCAL (oparg , v );
1310- break ;
1334+ continue ;
13111335
13121336 case DELETE_FAST :
13131337#ifdef SUPPORT_OBSOLETE_ACCESS
@@ -1325,7 +1349,7 @@ eval_code2(co, globals, locals,
13251349 }
13261350#endif
13271351 SETLOCAL (oparg , NULL );
1328- break ;
1352+ continue ;
13291353
13301354 case BUILD_TUPLE :
13311355 x = newtupleobject (oparg );
@@ -1335,6 +1359,7 @@ eval_code2(co, globals, locals,
13351359 SETTUPLEITEM (x , oparg , w );
13361360 }
13371361 PUSH (x );
1362+ continue ;
13381363 }
13391364 break ;
13401365
@@ -1348,12 +1373,14 @@ eval_code2(co, globals, locals,
13481373 break ;
13491374 }
13501375 PUSH (x );
1376+ continue ;
13511377 }
13521378 break ;
13531379
13541380 case BUILD_MAP :
13551381 x = newdictobject ();
13561382 PUSH (x );
1383+ if (x != NULL ) continue ;
13571384 break ;
13581385
13591386 case LOAD_ATTR :
@@ -1362,6 +1389,7 @@ eval_code2(co, globals, locals,
13621389 x = getattro (v , w );
13631390 DECREF (v );
13641391 PUSH (x );
1392+ if (x != NULL ) continue ;
13651393 break ;
13661394
13671395 case COMPARE_OP :
@@ -1371,6 +1399,7 @@ eval_code2(co, globals, locals,
13711399 DECREF (v );
13721400 DECREF (w );
13731401 PUSH (x );
1402+ if (x != NULL ) continue ;
13741403 break ;
13751404
13761405 case IMPORT_NAME :
@@ -1405,6 +1434,7 @@ eval_code2(co, globals, locals,
14051434 x = call_object (x , w );
14061435 DECREF (w );
14071436 PUSH (x );
1437+ if (x != NULL ) continue ;
14081438 break ;
14091439
14101440 case IMPORT_FROM :
@@ -1417,6 +1447,7 @@ eval_code2(co, globals, locals,
14171447 }
14181448 err = import_from (x , v , w );
14191449 locals_2_fast (f , 0 );
1450+ if (err == 0 ) continue ;
14201451 break ;
14211452
14221453#ifdef SUPPORT_OBSOLETE_ACCESS
@@ -1433,27 +1464,33 @@ eval_code2(co, globals, locals,
14331464
14341465 case JUMP_FORWARD :
14351466 JUMPBY (oparg );
1436- break ;
1467+ continue ;
14371468
14381469 case JUMP_IF_FALSE :
14391470 err = testbool (TOP ());
14401471 if (err > 0 )
14411472 err = 0 ;
14421473 else if (err == 0 )
14431474 JUMPBY (oparg );
1444- break ;
1475+ else
1476+ break ;
1477+ continue ;
14451478
14461479 case JUMP_IF_TRUE :
14471480 err = testbool (TOP ());
14481481 if (err > 0 ) {
14491482 err = 0 ;
14501483 JUMPBY (oparg );
14511484 }
1452- break ;
1485+ else if (err == 0 )
1486+ ;
1487+ else
1488+ break ;
1489+ continue ;
14531490
14541491 case JUMP_ABSOLUTE :
14551492 JUMPTO (oparg );
1456- break ;
1493+ continue ;
14571494
14581495 case FOR_LOOP :
14591496 /* for v in s: ...
@@ -1470,6 +1507,7 @@ eval_code2(co, globals, locals,
14701507 PUSH (x );
14711508 DECREF (w );
14721509 PUSH (u );
1510+ if (x != NULL ) continue ;
14731511 }
14741512 else {
14751513 DECREF (v );
@@ -1478,8 +1516,10 @@ eval_code2(co, globals, locals,
14781516 but also an error: */
14791517 if (err_occurred ())
14801518 why = WHY_EXCEPTION ;
1481- else
1519+ else {
14821520 JUMPBY (oparg );
1521+ continue ;
1522+ }
14831523 }
14841524 break ;
14851525
@@ -1488,20 +1528,20 @@ eval_code2(co, globals, locals,
14881528 case SETUP_FINALLY :
14891529 setup_block (f , opcode , INSTR_OFFSET () + oparg ,
14901530 STACK_LEVEL ());
1491- break ;
1531+ continue ;
14921532
14931533 case SET_LINENO :
14941534#ifdef LLTRACE
14951535 if (lltrace )
14961536 printf ("--- %s:%d \n" , filename , oparg );
14971537#endif
14981538 f -> f_lineno = oparg ;
1499- if (f -> f_trace != NULL ) {
1500- /* Trace each line of code reached */
1501- f -> f_lasti = INSTR_OFFSET ();
1502- err = call_trace ( & f -> f_trace , & f -> f_trace ,
1503- f , "line" , None );
1504- }
1539+ if (f -> f_trace == NULL )
1540+ continue ;
1541+ /* Trace each line of code reached */
1542+ f -> f_lasti = INSTR_OFFSET ();
1543+ err = call_trace ( & f -> f_trace , & f -> f_trace ,
1544+ f , "line" , None );
15051545 break ;
15061546
15071547 case CALL_FUNCTION :
@@ -1619,6 +1659,7 @@ eval_code2(co, globals, locals,
16191659 DECREF (w );
16201660 }
16211661 PUSH (x );
1662+ if (x != NULL ) continue ;
16221663 break ;
16231664 }
16241665
@@ -1656,6 +1697,7 @@ eval_code2(co, globals, locals,
16561697 DECREF (v );
16571698 XDECREF (w );
16581699 PUSH (x );
1700+ if (x != NULL ) continue ;
16591701 break ;
16601702
16611703
0 commit comments