@@ -2158,6 +2158,7 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int
2158
2158
PyObject * container = SECOND ();
2159
2159
next_instr -- ;
2160
2160
if (_Py_Specialize_BinarySubscr (container , sub , next_instr ) < 0 ) {
2161
+ next_instr ++ ;
2161
2162
goto error ;
2162
2163
}
2163
2164
DISPATCH_SAME_OPARG ();
@@ -2323,6 +2324,7 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int
2323
2324
PyObject * container = SECOND ();
2324
2325
next_instr -- ;
2325
2326
if (_Py_Specialize_StoreSubscr (container , sub , next_instr ) < 0 ) {
2327
+ next_instr ++ ;
2326
2328
goto error ;
2327
2329
}
2328
2330
DISPATCH_SAME_OPARG ();
@@ -3056,6 +3058,7 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int
3056
3058
PyObject * name = GETITEM (names , oparg >>1 );
3057
3059
next_instr -- ;
3058
3060
if (_Py_Specialize_LoadGlobal (GLOBALS (), BUILTINS (), next_instr , name ) < 0 ) {
3061
+ next_instr ++ ;
3059
3062
goto error ;
3060
3063
}
3061
3064
DISPATCH_SAME_OPARG ();
@@ -3481,6 +3484,7 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int
3481
3484
PyObject * name = GETITEM (names , oparg );
3482
3485
next_instr -- ;
3483
3486
if (_Py_Specialize_LoadAttr (owner , next_instr , name ) < 0 ) {
3487
+ next_instr ++ ;
3484
3488
goto error ;
3485
3489
}
3486
3490
DISPATCH_SAME_OPARG ();
@@ -3590,6 +3594,7 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int
3590
3594
PyObject * name = GETITEM (names , oparg );
3591
3595
next_instr -- ;
3592
3596
if (_Py_Specialize_StoreAttr (owner , next_instr , name ) < 0 ) {
3597
+ next_instr ++ ;
3593
3598
goto error ;
3594
3599
}
3595
3600
DISPATCH_SAME_OPARG ();
@@ -4527,6 +4532,7 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int
4527
4532
PyObject * name = GETITEM (names , oparg );
4528
4533
next_instr -- ;
4529
4534
if (_Py_Specialize_LoadMethod (owner , next_instr , name ) < 0 ) {
4535
+ next_instr ++ ;
4530
4536
goto error ;
4531
4537
}
4532
4538
DISPATCH_SAME_OPARG ();
@@ -4801,6 +4807,7 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int
4801
4807
int err = _Py_Specialize_Precall (callable , next_instr , nargs ,
4802
4808
call_shape .kwnames , oparg );
4803
4809
if (err < 0 ) {
4810
+ next_instr ++ ;
4804
4811
goto error ;
4805
4812
}
4806
4813
DISPATCH_SAME_OPARG ();
@@ -4822,6 +4829,7 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int
4822
4829
int err = _Py_Specialize_Call (callable , next_instr , nargs ,
4823
4830
call_shape .kwnames );
4824
4831
if (err < 0 ) {
4832
+ next_instr ++ ;
4825
4833
goto error ;
4826
4834
}
4827
4835
DISPATCH_SAME_OPARG ();
@@ -5184,16 +5192,16 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int
5184
5192
PyObject * list = SECOND ();
5185
5193
DEOPT_IF (!PyList_Check (list ), PRECALL );
5186
5194
STAT_INC (PRECALL , hit );
5187
- // PRECALL + CALL + POP_TOP
5188
- JUMPBY (INLINE_CACHE_ENTRIES_PRECALL + 1 + INLINE_CACHE_ENTRIES_CALL + 1 );
5189
- assert (_Py_OPCODE (next_instr [-1 ]) == POP_TOP );
5190
5195
PyObject * arg = POP ();
5191
5196
if (_PyList_AppendTakeRef ((PyListObject * )list , arg ) < 0 ) {
5192
5197
goto error ;
5193
5198
}
5194
5199
STACK_SHRINK (2 );
5195
5200
Py_DECREF (list );
5196
5201
Py_DECREF (callable );
5202
+ // PRECALL + CALL + POP_TOP
5203
+ JUMPBY (INLINE_CACHE_ENTRIES_PRECALL + 1 + INLINE_CACHE_ENTRIES_CALL + 1 );
5204
+ assert (_Py_OPCODE (next_instr [-1 ]) == POP_TOP );
5197
5205
DISPATCH ();
5198
5206
}
5199
5207
0 commit comments