From 8c5f74fc89e35827c52753fe620b32207d537319 Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Fri, 30 Jun 2023 03:05:01 +0200 Subject: [PATCH] gh-106023: Update code using _PyObject_FastCall() (#106257) Replace _PyObject_FastCall() calls with PyObject_Vectorcall(). --- Modules/_elementtree.c | 22 +- Modules/_functoolsmodule.c | 21 +- Objects/typeobject.c | 3 +- Parser/pegen.c | 4 +- Python/bytecodes.c | 1 - Python/ceval.c | 27 +- Python/executor_cases.c.h | 270 +++++++++---------- Python/generated_cases.c.h | 530 ++++++++++++++++++------------------- Python/pythonrun.c | 7 +- Python/sysmodule.c | 2 +- 10 files changed, 434 insertions(+), 453 deletions(-) diff --git a/Modules/_elementtree.c b/Modules/_elementtree.c index 21a6e4e5b20..2a0eac4d2f8 100644 --- a/Modules/_elementtree.c +++ b/Modules/_elementtree.c @@ -882,7 +882,6 @@ LOCAL(PyObject *) deepcopy(elementtreestate *st, PyObject *object, PyObject *memo) { /* do a deep copy of the given object */ - PyObject *stack[2]; /* Fast paths */ if (object == Py_None || PyUnicode_CheckExact(object)) { @@ -917,9 +916,8 @@ deepcopy(elementtreestate *st, PyObject *object, PyObject *memo) return NULL; } - stack[0] = object; - stack[1] = memo; - return _PyObject_FastCall(st->deepcopy_obj, stack, 2); + PyObject *args[2] = {object, memo}; + return PyObject_Vectorcall(st->deepcopy_obj, args, 2, NULL); } @@ -2852,14 +2850,14 @@ treebuilder_handle_pi(TreeBuilderObject* self, PyObject* target, PyObject* text) { PyObject* pi; PyObject* this; - PyObject* stack[2] = {target, text}; if (treebuilder_flush_data(self) < 0) { return NULL; } if (self->pi_factory) { - pi = _PyObject_FastCall(self->pi_factory, stack, 2); + PyObject* args[2] = {target, text}; + pi = PyObject_Vectorcall(self->pi_factory, args, 2, NULL); if (!pi) { return NULL; } @@ -3372,7 +3370,6 @@ expat_start_ns_handler(XMLParserObject* self, const XML_Char* prefix_in, PyObject* res = NULL; PyObject* uri; PyObject* prefix; - PyObject* stack[2]; if (PyErr_Occurred()) return; @@ -3411,9 +3408,8 @@ expat_start_ns_handler(XMLParserObject* self, const XML_Char* prefix_in, return; } - stack[0] = prefix; - stack[1] = uri; - res = _PyObject_FastCall(self->handle_start_ns, stack, 2); + PyObject* args[2] = {prefix, uri}; + res = PyObject_Vectorcall(self->handle_start_ns, args, 2, NULL); Py_DECREF(uri); Py_DECREF(prefix); } @@ -3551,7 +3547,6 @@ expat_pi_handler(XMLParserObject* self, const XML_Char* target_in, PyObject* pi_target; PyObject* data; PyObject* res; - PyObject* stack[2]; if (PyErr_Occurred()) return; @@ -3581,9 +3576,8 @@ expat_pi_handler(XMLParserObject* self, const XML_Char* target_in, if (!data) goto error; - stack[0] = pi_target; - stack[1] = data; - res = _PyObject_FastCall(self->handle_pi, stack, 2); + PyObject* args[2] = {pi_target, data}; + res = PyObject_Vectorcall(self->handle_pi, args, 2, NULL); Py_XDECREF(res); Py_DECREF(data); Py_DECREF(pi_target); diff --git a/Modules/_functoolsmodule.c b/Modules/_functoolsmodule.c index aa566c31cc1..c987485e66a 100644 --- a/Modules/_functoolsmodule.c +++ b/Modules/_functoolsmodule.c @@ -594,21 +594,15 @@ keyobject_call(keyobject *ko, PyObject *args, PyObject *kwds) static PyObject * keyobject_richcompare(PyObject *ko, PyObject *other, int op) { - PyObject *res; - PyObject *x; - PyObject *y; - PyObject *compare; - PyObject *answer; - PyObject* stack[2]; - if (!Py_IS_TYPE(other, Py_TYPE(ko))) { PyErr_Format(PyExc_TypeError, "other argument must be K instance"); return NULL; } - compare = ((keyobject *) ko)->cmp; + + PyObject *compare = ((keyobject *) ko)->cmp; assert(compare != NULL); - x = ((keyobject *) ko)->object; - y = ((keyobject *) other)->object; + PyObject *x = ((keyobject *) ko)->object; + PyObject *y = ((keyobject *) other)->object; if (!x || !y){ PyErr_Format(PyExc_AttributeError, "object"); return NULL; @@ -617,14 +611,13 @@ keyobject_richcompare(PyObject *ko, PyObject *other, int op) /* Call the user's comparison function and translate the 3-way * result into true or false (or error). */ - stack[0] = x; - stack[1] = y; - res = _PyObject_FastCall(compare, stack, 2); + PyObject* args[2] = {x, y}; + PyObject *res = PyObject_Vectorcall(compare, args, 2, NULL); if (res == NULL) { return NULL; } - answer = PyObject_RichCompare(res, _PyLong_GetZero(), op); + PyObject *answer = PyObject_RichCompare(res, _PyLong_GetZero(), op); Py_DECREF(res); return answer; } diff --git a/Objects/typeobject.c b/Objects/typeobject.c index e3769cee2c3..cc389bc3d6f 100644 --- a/Objects/typeobject.c +++ b/Objects/typeobject.c @@ -10013,7 +10013,8 @@ static int type_new_init_subclass(PyTypeObject *type, PyObject *kwds) { PyObject *args[2] = {(PyObject *)type, (PyObject *)type}; - PyObject *super = _PyObject_FastCall((PyObject *)&PySuper_Type, args, 2); + PyObject *super = PyObject_Vectorcall((PyObject *)&PySuper_Type, + args, 2, NULL); if (super == NULL) { return -1; } diff --git a/Parser/pegen.c b/Parser/pegen.c index b9894dd0acc..885d423fca6 100644 --- a/Parser/pegen.c +++ b/Parser/pegen.c @@ -465,7 +465,6 @@ _PyPegen_new_identifier(Parser *p, const char *n) identifier; if so, normalize to NFKC. */ if (!PyUnicode_IS_ASCII(id)) { - PyObject *id2; if (!init_normalization(p)) { Py_DECREF(id); @@ -478,12 +477,13 @@ _PyPegen_new_identifier(Parser *p, const char *n) goto error; } PyObject *args[2] = {form, id}; - id2 = _PyObject_FastCall(p->normalize, args, 2); + PyObject *id2 = PyObject_Vectorcall(p->normalize, args, 2, NULL); Py_DECREF(id); Py_DECREF(form); if (!id2) { goto error; } + if (!PyUnicode_Check(id2)) { PyErr_Format(PyExc_TypeError, diff --git a/Python/bytecodes.c b/Python/bytecodes.c index cd23e662470..8aab7ebc5cf 100644 --- a/Python/bytecodes.c +++ b/Python/bytecodes.c @@ -8,7 +8,6 @@ #include "Python.h" #include "pycore_abstract.h" // _PyIndex_Check() -#include "pycore_call.h" // _PyObject_FastCallDictTstate() #include "pycore_ceval.h" // _PyEval_SignalAsyncExc() #include "pycore_code.h" #include "pycore_function.h" diff --git a/Python/ceval.c b/Python/ceval.c index 65b6f248166..2010e9e6e7a 100644 --- a/Python/ceval.c +++ b/Python/ceval.c @@ -4,7 +4,7 @@ #include "Python.h" #include "pycore_abstract.h" // _PyIndex_Check() -#include "pycore_call.h" // _PyObject_FastCallDictTstate() +#include "pycore_call.h" // _PyObject_CallNoArgs() #include "pycore_ceval.h" // _PyEval_SignalAsyncExc() #include "pycore_code.h" #include "pycore_function.h" @@ -2431,40 +2431,37 @@ static PyObject * import_name(PyThreadState *tstate, _PyInterpreterFrame *frame, PyObject *name, PyObject *fromlist, PyObject *level) { - PyObject *import_func, *res; - PyObject* stack[5]; - - import_func = _PyDict_GetItemWithError(frame->f_builtins, &_Py_ID(__import__)); + PyObject *import_func = _PyDict_GetItemWithError(frame->f_builtins, + &_Py_ID(__import__)); if (import_func == NULL) { if (!_PyErr_Occurred(tstate)) { _PyErr_SetString(tstate, PyExc_ImportError, "__import__ not found"); } return NULL; } + PyObject *locals = frame->f_locals; + if (locals == NULL) { + locals = Py_None; + } + /* Fast path for not overloaded __import__. */ if (_PyImport_IsDefaultImportFunc(tstate->interp, import_func)) { int ilevel = _PyLong_AsInt(level); if (ilevel == -1 && _PyErr_Occurred(tstate)) { return NULL; } - res = PyImport_ImportModuleLevelObject( + return PyImport_ImportModuleLevelObject( name, frame->f_globals, - locals == NULL ? Py_None :locals, + locals, fromlist, ilevel); - return res; } + PyObject* args[5] = {name, frame->f_globals, locals, fromlist, level}; Py_INCREF(import_func); - - stack[0] = name; - stack[1] = frame->f_globals; - stack[2] = locals == NULL ? Py_None : locals; - stack[3] = fromlist; - stack[4] = level; - res = _PyObject_FastCall(import_func, stack, 5); + PyObject *res = PyObject_Vectorcall(import_func, args, 5, NULL); Py_DECREF(import_func); return res; } diff --git a/Python/executor_cases.c.h b/Python/executor_cases.c.h index ea932232d75..ccef2736b71 100644 --- a/Python/executor_cases.c.h +++ b/Python/executor_cases.c.h @@ -9,7 +9,7 @@ case LOAD_FAST: { PyObject *value; - #line 189 "Python/bytecodes.c" + #line 188 "Python/bytecodes.c" value = GETLOCAL(oparg); assert(value != NULL); Py_INCREF(value); @@ -21,7 +21,7 @@ case LOAD_FAST_AND_CLEAR: { PyObject *value; - #line 195 "Python/bytecodes.c" + #line 194 "Python/bytecodes.c" value = GETLOCAL(oparg); // do not use SETLOCAL here, it decrefs the old value GETLOCAL(oparg) = NULL; @@ -33,7 +33,7 @@ case LOAD_CONST: { PyObject *value; - #line 210 "Python/bytecodes.c" + #line 209 "Python/bytecodes.c" value = GETITEM(FRAME_CO_CONSTS, oparg); Py_INCREF(value); #line 40 "Python/executor_cases.c.h" @@ -44,7 +44,7 @@ case STORE_FAST: { PyObject *value = stack_pointer[-1]; - #line 215 "Python/bytecodes.c" + #line 214 "Python/bytecodes.c" SETLOCAL(oparg, value); #line 50 "Python/executor_cases.c.h" STACK_SHRINK(1); @@ -53,7 +53,7 @@ case POP_TOP: { PyObject *value = stack_pointer[-1]; - #line 238 "Python/bytecodes.c" + #line 237 "Python/bytecodes.c" #line 58 "Python/executor_cases.c.h" Py_DECREF(value); STACK_SHRINK(1); @@ -62,7 +62,7 @@ case PUSH_NULL: { PyObject *res; - #line 242 "Python/bytecodes.c" + #line 241 "Python/bytecodes.c" res = NULL; #line 68 "Python/executor_cases.c.h" STACK_GROW(1); @@ -73,7 +73,7 @@ case END_SEND: { PyObject *value = stack_pointer[-1]; PyObject *receiver = stack_pointer[-2]; - #line 261 "Python/bytecodes.c" + #line 260 "Python/bytecodes.c" Py_DECREF(receiver); #line 79 "Python/executor_cases.c.h" STACK_SHRINK(1); @@ -84,11 +84,11 @@ case UNARY_NEGATIVE: { PyObject *value = stack_pointer[-1]; PyObject *res; - #line 276 "Python/bytecodes.c" + #line 275 "Python/bytecodes.c" res = PyNumber_Negative(value); #line 90 "Python/executor_cases.c.h" Py_DECREF(value); - #line 278 "Python/bytecodes.c" + #line 277 "Python/bytecodes.c" if (res == NULL) goto pop_1_error; #line 94 "Python/executor_cases.c.h" stack_pointer[-1] = res; @@ -98,7 +98,7 @@ case UNARY_NOT: { PyObject *value = stack_pointer[-1]; PyObject *res; - #line 282 "Python/bytecodes.c" + #line 281 "Python/bytecodes.c" assert(PyBool_Check(value)); res = Py_IsFalse(value) ? Py_True : Py_False; #line 105 "Python/executor_cases.c.h" @@ -108,7 +108,7 @@ case TO_BOOL_BOOL: { PyObject *value = stack_pointer[-1]; - #line 314 "Python/bytecodes.c" + #line 313 "Python/bytecodes.c" DEOPT_IF(!PyBool_Check(value), TO_BOOL); STAT_INC(TO_BOOL, hit); #line 115 "Python/executor_cases.c.h" @@ -118,7 +118,7 @@ case TO_BOOL_INT: { PyObject *value = stack_pointer[-1]; PyObject *res; - #line 319 "Python/bytecodes.c" + #line 318 "Python/bytecodes.c" DEOPT_IF(!PyLong_CheckExact(value), TO_BOOL); STAT_INC(TO_BOOL, hit); if (_PyLong_IsZero((PyLongObject *)value)) { @@ -128,7 +128,7 @@ else { #line 130 "Python/executor_cases.c.h" Py_DECREF(value); - #line 327 "Python/bytecodes.c" + #line 326 "Python/bytecodes.c" res = Py_True; } #line 135 "Python/executor_cases.c.h" @@ -139,7 +139,7 @@ case TO_BOOL_LIST: { PyObject *value = stack_pointer[-1]; PyObject *res; - #line 332 "Python/bytecodes.c" + #line 331 "Python/bytecodes.c" DEOPT_IF(!PyList_CheckExact(value), TO_BOOL); STAT_INC(TO_BOOL, hit); res = Py_SIZE(value) ? Py_True : Py_False; @@ -152,7 +152,7 @@ case TO_BOOL_NONE: { PyObject *value = stack_pointer[-1]; PyObject *res; - #line 339 "Python/bytecodes.c" + #line 338 "Python/bytecodes.c" // This one is a bit weird, because we expect *some* failures: DEOPT_IF(!Py_IsNone(value), TO_BOOL); STAT_INC(TO_BOOL, hit); @@ -165,7 +165,7 @@ case TO_BOOL_STR: { PyObject *value = stack_pointer[-1]; PyObject *res; - #line 346 "Python/bytecodes.c" + #line 345 "Python/bytecodes.c" DEOPT_IF(!PyUnicode_CheckExact(value), TO_BOOL); STAT_INC(TO_BOOL, hit); if (value == &_Py_STR(empty)) { @@ -176,7 +176,7 @@ assert(Py_SIZE(value)); #line 178 "Python/executor_cases.c.h" Py_DECREF(value); - #line 355 "Python/bytecodes.c" + #line 354 "Python/bytecodes.c" res = Py_True; } #line 183 "Python/executor_cases.c.h" @@ -188,14 +188,14 @@ PyObject *value = stack_pointer[-1]; PyObject *res; uint32_t version = operand; - #line 360 "Python/bytecodes.c" + #line 359 "Python/bytecodes.c" // This one is a bit weird, because we expect *some* failures: assert(version); DEOPT_IF(Py_TYPE(value)->tp_version_tag != version, TO_BOOL); STAT_INC(TO_BOOL, hit); #line 197 "Python/executor_cases.c.h" Py_DECREF(value); - #line 365 "Python/bytecodes.c" + #line 364 "Python/bytecodes.c" res = Py_True; #line 201 "Python/executor_cases.c.h" stack_pointer[-1] = res; @@ -205,11 +205,11 @@ case UNARY_INVERT: { PyObject *value = stack_pointer[-1]; PyObject *res; - #line 369 "Python/bytecodes.c" + #line 368 "Python/bytecodes.c" res = PyNumber_Invert(value); #line 211 "Python/executor_cases.c.h" Py_DECREF(value); - #line 371 "Python/bytecodes.c" + #line 370 "Python/bytecodes.c" if (res == NULL) goto pop_1_error; #line 215 "Python/executor_cases.c.h" stack_pointer[-1] = res; @@ -219,7 +219,7 @@ case _GUARD_BOTH_INT: { PyObject *right = stack_pointer[-1]; PyObject *left = stack_pointer[-2]; - #line 387 "Python/bytecodes.c" + #line 386 "Python/bytecodes.c" DEOPT_IF(!PyLong_CheckExact(left), BINARY_OP); DEOPT_IF(!PyLong_CheckExact(right), BINARY_OP); #line 226 "Python/executor_cases.c.h" @@ -230,7 +230,7 @@ PyObject *right = stack_pointer[-1]; PyObject *left = stack_pointer[-2]; PyObject *res; - #line 392 "Python/bytecodes.c" + #line 391 "Python/bytecodes.c" STAT_INC(BINARY_OP, hit); res = _PyLong_Multiply((PyLongObject *)left, (PyLongObject *)right); _Py_DECREF_SPECIALIZED(right, (destructor)PyObject_Free); @@ -246,7 +246,7 @@ PyObject *right = stack_pointer[-1]; PyObject *left = stack_pointer[-2]; PyObject *res; - #line 400 "Python/bytecodes.c" + #line 399 "Python/bytecodes.c" STAT_INC(BINARY_OP, hit); res = _PyLong_Add((PyLongObject *)left, (PyLongObject *)right); _Py_DECREF_SPECIALIZED(right, (destructor)PyObject_Free); @@ -262,7 +262,7 @@ PyObject *right = stack_pointer[-1]; PyObject *left = stack_pointer[-2]; PyObject *res; - #line 408 "Python/bytecodes.c" + #line 407 "Python/bytecodes.c" STAT_INC(BINARY_OP, hit); res = _PyLong_Subtract((PyLongObject *)left, (PyLongObject *)right); _Py_DECREF_SPECIALIZED(right, (destructor)PyObject_Free); @@ -277,7 +277,7 @@ case _GUARD_BOTH_FLOAT: { PyObject *right = stack_pointer[-1]; PyObject *left = stack_pointer[-2]; - #line 423 "Python/bytecodes.c" + #line 422 "Python/bytecodes.c" DEOPT_IF(!PyFloat_CheckExact(left), BINARY_OP); DEOPT_IF(!PyFloat_CheckExact(right), BINARY_OP); #line 284 "Python/executor_cases.c.h" @@ -288,7 +288,7 @@ PyObject *right = stack_pointer[-1]; PyObject *left = stack_pointer[-2]; PyObject *res; - #line 428 "Python/bytecodes.c" + #line 427 "Python/bytecodes.c" STAT_INC(BINARY_OP, hit); double dres = ((PyFloatObject *)left)->ob_fval * @@ -304,7 +304,7 @@ PyObject *right = stack_pointer[-1]; PyObject *left = stack_pointer[-2]; PyObject *res; - #line 436 "Python/bytecodes.c" + #line 435 "Python/bytecodes.c" STAT_INC(BINARY_OP, hit); double dres = ((PyFloatObject *)left)->ob_fval + @@ -320,7 +320,7 @@ PyObject *right = stack_pointer[-1]; PyObject *left = stack_pointer[-2]; PyObject *res; - #line 444 "Python/bytecodes.c" + #line 443 "Python/bytecodes.c" STAT_INC(BINARY_OP, hit); double dres = ((PyFloatObject *)left)->ob_fval - @@ -335,7 +335,7 @@ case _GUARD_BOTH_UNICODE: { PyObject *right = stack_pointer[-1]; PyObject *left = stack_pointer[-2]; - #line 459 "Python/bytecodes.c" + #line 458 "Python/bytecodes.c" DEOPT_IF(!PyUnicode_CheckExact(left), BINARY_OP); DEOPT_IF(!PyUnicode_CheckExact(right), BINARY_OP); #line 342 "Python/executor_cases.c.h" @@ -346,7 +346,7 @@ PyObject *right = stack_pointer[-1]; PyObject *left = stack_pointer[-2]; PyObject *res; - #line 464 "Python/bytecodes.c" + #line 463 "Python/bytecodes.c" STAT_INC(BINARY_OP, hit); res = PyUnicode_Concat(left, right); _Py_DECREF_SPECIALIZED(left, _PyUnicode_ExactDealloc); @@ -363,7 +363,7 @@ PyObject *start = stack_pointer[-2]; PyObject *container = stack_pointer[-3]; PyObject *res; - #line 534 "Python/bytecodes.c" + #line 533 "Python/bytecodes.c" PyObject *slice = _PyBuildSlice_ConsumeRefs(start, stop); // Can't use ERROR_IF() here, because we haven't // DECREF'ed container yet, and we still own slice. @@ -387,7 +387,7 @@ PyObject *start = stack_pointer[-2]; PyObject *container = stack_pointer[-3]; PyObject *v = stack_pointer[-4]; - #line 549 "Python/bytecodes.c" + #line 548 "Python/bytecodes.c" PyObject *slice = _PyBuildSlice_ConsumeRefs(start, stop); int err; if (slice == NULL) { @@ -409,7 +409,7 @@ PyObject *sub = stack_pointer[-1]; PyObject *list = stack_pointer[-2]; PyObject *res; - #line 564 "Python/bytecodes.c" + #line 563 "Python/bytecodes.c" DEOPT_IF(!PyLong_CheckExact(sub), BINARY_SUBSCR); DEOPT_IF(!PyList_CheckExact(list), BINARY_SUBSCR); @@ -433,7 +433,7 @@ PyObject *sub = stack_pointer[-1]; PyObject *tuple = stack_pointer[-2]; PyObject *res; - #line 580 "Python/bytecodes.c" + #line 579 "Python/bytecodes.c" DEOPT_IF(!PyLong_CheckExact(sub), BINARY_SUBSCR); DEOPT_IF(!PyTuple_CheckExact(tuple), BINARY_SUBSCR); @@ -457,7 +457,7 @@ PyObject *sub = stack_pointer[-1]; PyObject *dict = stack_pointer[-2]; PyObject *res; - #line 596 "Python/bytecodes.c" + #line 595 "Python/bytecodes.c" DEOPT_IF(!PyDict_CheckExact(dict), BINARY_SUBSCR); STAT_INC(BINARY_SUBSCR, hit); res = PyDict_GetItemWithError(dict, sub); @@ -468,7 +468,7 @@ #line 469 "Python/executor_cases.c.h" Py_DECREF(dict); Py_DECREF(sub); - #line 604 "Python/bytecodes.c" + #line 603 "Python/bytecodes.c" if (true) goto pop_2_error; } Py_INCREF(res); // Do this before DECREF'ing dict, sub @@ -483,7 +483,7 @@ case LIST_APPEND: { PyObject *v = stack_pointer[-1]; PyObject *list = stack_pointer[-(2 + (oparg-1))]; - #line 636 "Python/bytecodes.c" + #line 635 "Python/bytecodes.c" if (_PyList_AppendTakeRef((PyListObject *)list, v) < 0) goto pop_1_error; #line 489 "Python/executor_cases.c.h" STACK_SHRINK(1); @@ -493,11 +493,11 @@ case SET_ADD: { PyObject *v = stack_pointer[-1]; PyObject *set = stack_pointer[-(2 + (oparg-1))]; - #line 640 "Python/bytecodes.c" + #line 639 "Python/bytecodes.c" int err = PySet_Add(set, v); #line 499 "Python/executor_cases.c.h" Py_DECREF(v); - #line 642 "Python/bytecodes.c" + #line 641 "Python/bytecodes.c" if (err) goto pop_1_error; #line 503 "Python/executor_cases.c.h" STACK_SHRINK(1); @@ -508,7 +508,7 @@ PyObject *sub = stack_pointer[-1]; PyObject *list = stack_pointer[-2]; PyObject *value = stack_pointer[-3]; - #line 671 "Python/bytecodes.c" + #line 670 "Python/bytecodes.c" DEOPT_IF(!PyLong_CheckExact(sub), STORE_SUBSCR); DEOPT_IF(!PyList_CheckExact(list), STORE_SUBSCR); @@ -534,7 +534,7 @@ PyObject *sub = stack_pointer[-1]; PyObject *dict = stack_pointer[-2]; PyObject *value = stack_pointer[-3]; - #line 690 "Python/bytecodes.c" + #line 689 "Python/bytecodes.c" DEOPT_IF(!PyDict_CheckExact(dict), STORE_SUBSCR); STAT_INC(STORE_SUBSCR, hit); int err = _PyDict_SetItem_Take2((PyDictObject *)dict, sub, value); @@ -548,13 +548,13 @@ case DELETE_SUBSCR: { PyObject *sub = stack_pointer[-1]; PyObject *container = stack_pointer[-2]; - #line 698 "Python/bytecodes.c" + #line 697 "Python/bytecodes.c" /* del container[sub] */ int err = PyObject_DelItem(container, sub); #line 555 "Python/executor_cases.c.h" Py_DECREF(container); Py_DECREF(sub); - #line 701 "Python/bytecodes.c" + #line 700 "Python/bytecodes.c" if (err) goto pop_2_error; #line 560 "Python/executor_cases.c.h" STACK_SHRINK(2); @@ -564,12 +564,12 @@ case CALL_INTRINSIC_1: { PyObject *value = stack_pointer[-1]; PyObject *res; - #line 705 "Python/bytecodes.c" + #line 704 "Python/bytecodes.c" assert(oparg <= MAX_INTRINSIC_1); res = _PyIntrinsics_UnaryFunctions[oparg](tstate, value); #line 571 "Python/executor_cases.c.h" Py_DECREF(value); - #line 708 "Python/bytecodes.c" + #line 707 "Python/bytecodes.c" if (res == NULL) goto pop_1_error; #line 575 "Python/executor_cases.c.h" stack_pointer[-1] = res; @@ -580,13 +580,13 @@ PyObject *value1 = stack_pointer[-1]; PyObject *value2 = stack_pointer[-2]; PyObject *res; - #line 712 "Python/bytecodes.c" + #line 711 "Python/bytecodes.c" assert(oparg <= MAX_INTRINSIC_2); res = _PyIntrinsics_BinaryFunctions[oparg](tstate, value2, value1); #line 587 "Python/executor_cases.c.h" Py_DECREF(value2); Py_DECREF(value1); - #line 715 "Python/bytecodes.c" + #line 714 "Python/bytecodes.c" if (res == NULL) goto pop_2_error; #line 592 "Python/executor_cases.c.h" STACK_SHRINK(1); @@ -597,7 +597,7 @@ case GET_AITER: { PyObject *obj = stack_pointer[-1]; PyObject *iter; - #line 820 "Python/bytecodes.c" + #line 819 "Python/bytecodes.c" unaryfunc getter = NULL; PyTypeObject *type = Py_TYPE(obj); @@ -612,14 +612,14 @@ type->tp_name); #line 614 "Python/executor_cases.c.h" Py_DECREF(obj); - #line 833 "Python/bytecodes.c" + #line 832 "Python/bytecodes.c" if (true) goto pop_1_error; } iter = (*getter)(obj); #line 621 "Python/executor_cases.c.h" Py_DECREF(obj); - #line 838 "Python/bytecodes.c" + #line 837 "Python/bytecodes.c" if (iter == NULL) goto pop_1_error; if (Py_TYPE(iter)->tp_as_async == NULL || @@ -640,7 +640,7 @@ case GET_ANEXT: { PyObject *aiter = stack_pointer[-1]; PyObject *awaitable; - #line 853 "Python/bytecodes.c" + #line 852 "Python/bytecodes.c" unaryfunc getter = NULL; PyObject *next_iter = NULL; PyTypeObject *type = Py_TYPE(aiter); @@ -692,7 +692,7 @@ case GET_AWAITABLE: { PyObject *iterable = stack_pointer[-1]; PyObject *iter; - #line 898 "Python/bytecodes.c" + #line 897 "Python/bytecodes.c" iter = _PyCoro_GetAwaitableIter(iterable); if (iter == NULL) { @@ -701,7 +701,7 @@ #line 703 "Python/executor_cases.c.h" Py_DECREF(iterable); - #line 905 "Python/bytecodes.c" + #line 904 "Python/bytecodes.c" if (iter != NULL && PyCoro_CheckExact(iter)) { PyObject *yf = _PyGen_yf((PyGenObject*)iter); @@ -725,7 +725,7 @@ case POP_EXCEPT: { PyObject *exc_value = stack_pointer[-1]; - #line 1035 "Python/bytecodes.c" + #line 1034 "Python/bytecodes.c" _PyErr_StackItem *exc_info = tstate->exc_info; Py_XSETREF(exc_info->exc_value, exc_value); #line 732 "Python/executor_cases.c.h" @@ -735,7 +735,7 @@ case LOAD_ASSERTION_ERROR: { PyObject *value; - #line 1086 "Python/bytecodes.c" + #line 1085 "Python/bytecodes.c" value = Py_NewRef(PyExc_AssertionError); #line 741 "Python/executor_cases.c.h" STACK_GROW(1); @@ -745,7 +745,7 @@ case LOAD_BUILD_CLASS: { PyObject *bc; - #line 1090 "Python/bytecodes.c" + #line 1089 "Python/bytecodes.c" if (PyDict_CheckExact(BUILTINS())) { bc = _PyDict_GetItemWithError(BUILTINS(), &_Py_ID(__build_class__)); @@ -775,7 +775,7 @@ case STORE_NAME: { PyObject *v = stack_pointer[-1]; - #line 1115 "Python/bytecodes.c" + #line 1114 "Python/bytecodes.c" PyObject *name = GETITEM(FRAME_CO_NAMES, oparg); PyObject *ns = LOCALS(); int err; @@ -784,7 +784,7 @@ "no locals found when storing %R", name); #line 786 "Python/executor_cases.c.h" Py_DECREF(v); - #line 1122 "Python/bytecodes.c" + #line 1121 "Python/bytecodes.c" if (true) goto pop_1_error; } if (PyDict_CheckExact(ns)) @@ -793,7 +793,7 @@ err = PyObject_SetItem(ns, name, v); #line 795 "Python/executor_cases.c.h" Py_DECREF(v); - #line 1129 "Python/bytecodes.c" + #line 1128 "Python/bytecodes.c" if (err) goto pop_1_error; #line 799 "Python/executor_cases.c.h" STACK_SHRINK(1); @@ -801,7 +801,7 @@ } case DELETE_NAME: { - #line 1133 "Python/bytecodes.c" + #line 1132 "Python/bytecodes.c" PyObject *name = GETITEM(FRAME_CO_NAMES, oparg); PyObject *ns = LOCALS(); int err; @@ -825,7 +825,7 @@ case UNPACK_SEQUENCE_TWO_TUPLE: { PyObject *seq = stack_pointer[-1]; PyObject **values = stack_pointer - (1); - #line 1176 "Python/bytecodes.c" + #line 1175 "Python/bytecodes.c" DEOPT_IF(!PyTuple_CheckExact(seq), UNPACK_SEQUENCE); DEOPT_IF(PyTuple_GET_SIZE(seq) != 2, UNPACK_SEQUENCE); assert(oparg == 2); @@ -842,7 +842,7 @@ case UNPACK_SEQUENCE_TUPLE: { PyObject *seq = stack_pointer[-1]; PyObject **values = stack_pointer - (1); - #line 1186 "Python/bytecodes.c" + #line 1185 "Python/bytecodes.c" DEOPT_IF(!PyTuple_CheckExact(seq), UNPACK_SEQUENCE); DEOPT_IF(PyTuple_GET_SIZE(seq) != oparg, UNPACK_SEQUENCE); STAT_INC(UNPACK_SEQUENCE, hit); @@ -860,7 +860,7 @@ case UNPACK_SEQUENCE_LIST: { PyObject *seq = stack_pointer[-1]; PyObject **values = stack_pointer - (1); - #line 1197 "Python/bytecodes.c" + #line 1196 "Python/bytecodes.c" DEOPT_IF(!PyList_CheckExact(seq), UNPACK_SEQUENCE); DEOPT_IF(PyList_GET_SIZE(seq) != oparg, UNPACK_SEQUENCE); STAT_INC(UNPACK_SEQUENCE, hit); @@ -877,13 +877,13 @@ case UNPACK_EX: { PyObject *seq = stack_pointer[-1]; - #line 1208 "Python/bytecodes.c" + #line 1207 "Python/bytecodes.c" int totalargs = 1 + (oparg & 0xFF) + (oparg >> 8); PyObject **top = stack_pointer + totalargs - 1; int res = unpack_iterable(tstate, seq, oparg & 0xFF, oparg >> 8, top); #line 885 "Python/executor_cases.c.h" Py_DECREF(seq); - #line 1212 "Python/bytecodes.c" + #line 1211 "Python/bytecodes.c" if (res == 0) goto pop_1_error; #line 889 "Python/executor_cases.c.h" STACK_GROW((oparg & 0xFF) + (oparg >> 8)); @@ -892,12 +892,12 @@ case DELETE_ATTR: { PyObject *owner = stack_pointer[-1]; - #line 1243 "Python/bytecodes.c" + #line 1242 "Python/bytecodes.c" PyObject *name = GETITEM(FRAME_CO_NAMES, oparg); int err = PyObject_SetAttr(owner, name, (PyObject *)NULL); #line 899 "Python/executor_cases.c.h" Py_DECREF(owner); - #line 1246 "Python/bytecodes.c" + #line 1245 "Python/bytecodes.c" if (err) goto pop_1_error; #line 903 "Python/executor_cases.c.h" STACK_SHRINK(1); @@ -906,12 +906,12 @@ case STORE_GLOBAL: { PyObject *v = stack_pointer[-1]; - #line 1250 "Python/bytecodes.c" + #line 1249 "Python/bytecodes.c" PyObject *name = GETITEM(FRAME_CO_NAMES, oparg); int err = PyDict_SetItem(GLOBALS(), name, v); #line 913 "Python/executor_cases.c.h" Py_DECREF(v); - #line 1253 "Python/bytecodes.c" + #line 1252 "Python/bytecodes.c" if (err) goto pop_1_error; #line 917 "Python/executor_cases.c.h" STACK_SHRINK(1); @@ -919,7 +919,7 @@ } case DELETE_GLOBAL: { - #line 1257 "Python/bytecodes.c" + #line 1256 "Python/bytecodes.c" PyObject *name = GETITEM(FRAME_CO_NAMES, oparg); int err; err = PyDict_DelItem(GLOBALS(), name); @@ -937,7 +937,7 @@ case _LOAD_LOCALS: { PyObject *locals; - #line 1271 "Python/bytecodes.c" + #line 1270 "Python/bytecodes.c" locals = LOCALS(); if (locals == NULL) { _PyErr_SetString(tstate, PyExc_SystemError, @@ -954,7 +954,7 @@ case _LOAD_FROM_DICT_OR_GLOBALS: { PyObject *mod_or_class_dict = stack_pointer[-1]; PyObject *v; - #line 1283 "Python/bytecodes.c" + #line 1282 "Python/bytecodes.c" PyObject *name = GETITEM(FRAME_CO_NAMES, oparg); if (PyDict_CheckExact(mod_or_class_dict)) { v = PyDict_GetItemWithError(mod_or_class_dict, name); @@ -1017,7 +1017,7 @@ } case DELETE_DEREF: { - #line 1453 "Python/bytecodes.c" + #line 1452 "Python/bytecodes.c" PyObject *cell = GETLOCAL(oparg); PyObject *oldobj = PyCell_GET(cell); // Can't use ERROR_IF here. @@ -1035,7 +1035,7 @@ case LOAD_FROM_DICT_OR_DEREF: { PyObject *class_dict = stack_pointer[-1]; PyObject *value; - #line 1466 "Python/bytecodes.c" + #line 1465 "Python/bytecodes.c" PyObject *name; assert(class_dict); assert(oparg >= 0 && oparg < _PyFrame_GetCode(frame)->co_nlocalsplus); @@ -1077,7 +1077,7 @@ case LOAD_DEREF: { PyObject *value; - #line 1503 "Python/bytecodes.c" + #line 1502 "Python/bytecodes.c" PyObject *cell = GETLOCAL(oparg); value = PyCell_GET(cell); if (value == NULL) { @@ -1093,7 +1093,7 @@ case STORE_DEREF: { PyObject *v = stack_pointer[-1]; - #line 1513 "Python/bytecodes.c" + #line 1512 "Python/bytecodes.c" PyObject *cell = GETLOCAL(oparg); PyObject *oldobj = PyCell_GET(cell); PyCell_SET(cell, v); @@ -1104,7 +1104,7 @@ } case COPY_FREE_VARS: { - #line 1520 "Python/bytecodes.c" + #line 1519 "Python/bytecodes.c" /* Copy closure variables to free variables */ PyCodeObject *co = _PyFrame_GetCode(frame); assert(PyFunction_Check(frame->f_funcobj)); @@ -1122,13 +1122,13 @@ case BUILD_STRING: { PyObject **pieces = (stack_pointer - oparg); PyObject *str; - #line 1533 "Python/bytecodes.c" + #line 1532 "Python/bytecodes.c" str = _PyUnicode_JoinArray(&_Py_STR(empty), pieces, oparg); #line 1128 "Python/executor_cases.c.h" for (int _i = oparg; --_i >= 0;) { Py_DECREF(pieces[_i]); } - #line 1535 "Python/bytecodes.c" + #line 1534 "Python/bytecodes.c" if (str == NULL) { STACK_SHRINK(oparg); goto error; } #line 1134 "Python/executor_cases.c.h" STACK_SHRINK(oparg); @@ -1140,7 +1140,7 @@ case BUILD_TUPLE: { PyObject **values = (stack_pointer - oparg); PyObject *tup; - #line 1539 "Python/bytecodes.c" + #line 1538 "Python/bytecodes.c" tup = _PyTuple_FromArraySteal(values, oparg); if (tup == NULL) { STACK_SHRINK(oparg); goto error; } #line 1147 "Python/executor_cases.c.h" @@ -1153,7 +1153,7 @@ case BUILD_LIST: { PyObject **values = (stack_pointer - oparg); PyObject *list; - #line 1544 "Python/bytecodes.c" + #line 1543 "Python/bytecodes.c" list = _PyList_FromArraySteal(values, oparg); if (list == NULL) { STACK_SHRINK(oparg); goto error; } #line 1160 "Python/executor_cases.c.h" @@ -1166,7 +1166,7 @@ case LIST_EXTEND: { PyObject *iterable = stack_pointer[-1]; PyObject *list = stack_pointer[-(2 + (oparg-1))]; - #line 1549 "Python/bytecodes.c" + #line 1548 "Python/bytecodes.c" PyObject *none_val = _PyList_Extend((PyListObject *)list, iterable); if (none_val == NULL) { if (_PyErr_ExceptionMatches(tstate, PyExc_TypeError) && @@ -1179,7 +1179,7 @@ } #line 1181 "Python/executor_cases.c.h" Py_DECREF(iterable); - #line 1560 "Python/bytecodes.c" + #line 1559 "Python/bytecodes.c" if (true) goto pop_1_error; } assert(Py_IsNone(none_val)); @@ -1192,11 +1192,11 @@ case SET_UPDATE: { PyObject *iterable = stack_pointer[-1]; PyObject *set = stack_pointer[-(2 + (oparg-1))]; - #line 1567 "Python/bytecodes.c" + #line 1566 "Python/bytecodes.c" int err = _PySet_Update(set, iterable); #line 1198 "Python/executor_cases.c.h" Py_DECREF(iterable); - #line 1569 "Python/bytecodes.c" + #line 1568 "Python/bytecodes.c" if (err < 0) goto pop_1_error; #line 1202 "Python/executor_cases.c.h" STACK_SHRINK(1); @@ -1206,7 +1206,7 @@ case BUILD_SET: { PyObject **values = (stack_pointer - oparg); PyObject *set; - #line 1573 "Python/bytecodes.c" + #line 1572 "Python/bytecodes.c" set = PySet_New(NULL); if (set == NULL) goto error; @@ -1231,7 +1231,7 @@ case BUILD_MAP: { PyObject **values = (stack_pointer - oparg*2); PyObject *map; - #line 1590 "Python/bytecodes.c" + #line 1589 "Python/bytecodes.c" map = _PyDict_FromItems( values, 2, values+1, 2, @@ -1243,7 +1243,7 @@ for (int _i = oparg*2; --_i >= 0;) { Py_DECREF(values[_i]); } - #line 1598 "Python/bytecodes.c" + #line 1597 "Python/bytecodes.c" if (map == NULL) { STACK_SHRINK(oparg*2); goto error; } #line 1249 "Python/executor_cases.c.h" STACK_SHRINK(oparg*2); @@ -1253,7 +1253,7 @@ } case SETUP_ANNOTATIONS: { - #line 1602 "Python/bytecodes.c" + #line 1601 "Python/bytecodes.c" int err; PyObject *ann_dict; if (LOCALS() == NULL) { @@ -1301,7 +1301,7 @@ PyObject *keys = stack_pointer[-1]; PyObject **values = (stack_pointer - (1 + oparg)); PyObject *map; - #line 1644 "Python/bytecodes.c" + #line 1643 "Python/bytecodes.c" if (!PyTuple_CheckExact(keys) || PyTuple_GET_SIZE(keys) != (Py_ssize_t)oparg) { _PyErr_SetString(tstate, PyExc_SystemError, @@ -1316,7 +1316,7 @@ Py_DECREF(values[_i]); } Py_DECREF(keys); - #line 1654 "Python/bytecodes.c" + #line 1653 "Python/bytecodes.c" if (map == NULL) { STACK_SHRINK(oparg); goto pop_1_error; } #line 1322 "Python/executor_cases.c.h" STACK_SHRINK(oparg); @@ -1326,7 +1326,7 @@ case DICT_UPDATE: { PyObject *update = stack_pointer[-1]; - #line 1658 "Python/bytecodes.c" + #line 1657 "Python/bytecodes.c" PyObject *dict = PEEK(oparg + 1); // update is still on the stack if (PyDict_Update(dict, update) < 0) { if (_PyErr_ExceptionMatches(tstate, PyExc_AttributeError)) { @@ -1336,7 +1336,7 @@ } #line 1338 "Python/executor_cases.c.h" Py_DECREF(update); - #line 1666 "Python/bytecodes.c" + #line 1665 "Python/bytecodes.c" if (true) goto pop_1_error; } #line 1343 "Python/executor_cases.c.h" @@ -1347,14 +1347,14 @@ case DICT_MERGE: { PyObject *update = stack_pointer[-1]; - #line 1672 "Python/bytecodes.c" + #line 1671 "Python/bytecodes.c" PyObject *dict = PEEK(oparg + 1); // update is still on the stack if (_PyDict_MergeEx(dict, update, 2) < 0) { format_kwargs_error(tstate, PEEK(3 + oparg), update); #line 1356 "Python/executor_cases.c.h" Py_DECREF(update); - #line 1677 "Python/bytecodes.c" + #line 1676 "Python/bytecodes.c" if (true) goto pop_1_error; } #line 1361 "Python/executor_cases.c.h" @@ -1366,7 +1366,7 @@ case MAP_ADD: { PyObject *value = stack_pointer[-1]; PyObject *key = stack_pointer[-2]; - #line 1683 "Python/bytecodes.c" + #line 1682 "Python/bytecodes.c" PyObject *dict = PEEK(oparg + 2); // key, value are still on the stack assert(PyDict_CheckExact(dict)); /* dict[key] = value */ @@ -1383,7 +1383,7 @@ PyObject *global_super = stack_pointer[-3]; PyObject *res2 = NULL; PyObject *res; - #line 1766 "Python/bytecodes.c" + #line 1765 "Python/bytecodes.c" assert(!(oparg & 1)); DEOPT_IF(global_super != (PyObject *)&PySuper_Type, LOAD_SUPER_ATTR); DEOPT_IF(!PyType_Check(class), LOAD_SUPER_ATTR); @@ -1394,7 +1394,7 @@ Py_DECREF(global_super); Py_DECREF(class); Py_DECREF(self); - #line 1773 "Python/bytecodes.c" + #line 1772 "Python/bytecodes.c" if (res == NULL) goto pop_3_error; #line 1400 "Python/executor_cases.c.h" STACK_SHRINK(2); @@ -1410,7 +1410,7 @@ PyObject *global_super = stack_pointer[-3]; PyObject *res2; PyObject *res; - #line 1777 "Python/bytecodes.c" + #line 1776 "Python/bytecodes.c" assert(oparg & 1); DEOPT_IF(global_super != (PyObject *)&PySuper_Type, LOAD_SUPER_ATTR); DEOPT_IF(!PyType_Check(class), LOAD_SUPER_ATTR); @@ -1444,7 +1444,7 @@ PyObject *right = stack_pointer[-1]; PyObject *left = stack_pointer[-2]; PyObject *res; - #line 2115 "Python/bytecodes.c" + #line 2114 "Python/bytecodes.c" DEOPT_IF(!PyFloat_CheckExact(left), COMPARE_OP); DEOPT_IF(!PyFloat_CheckExact(right), COMPARE_OP); STAT_INC(COMPARE_OP, hit); @@ -1466,7 +1466,7 @@ PyObject *right = stack_pointer[-1]; PyObject *left = stack_pointer[-2]; PyObject *res; - #line 2130 "Python/bytecodes.c" + #line 2129 "Python/bytecodes.c" DEOPT_IF(!PyLong_CheckExact(left), COMPARE_OP); DEOPT_IF(!PyLong_CheckExact(right), COMPARE_OP); DEOPT_IF(!_PyLong_IsCompact((PyLongObject *)left), COMPARE_OP); @@ -1492,7 +1492,7 @@ PyObject *right = stack_pointer[-1]; PyObject *left = stack_pointer[-2]; PyObject *res; - #line 2149 "Python/bytecodes.c" + #line 2148 "Python/bytecodes.c" DEOPT_IF(!PyUnicode_CheckExact(left), COMPARE_OP); DEOPT_IF(!PyUnicode_CheckExact(right), COMPARE_OP); STAT_INC(COMPARE_OP, hit); @@ -1515,12 +1515,12 @@ PyObject *right = stack_pointer[-1]; PyObject *left = stack_pointer[-2]; PyObject *b; - #line 2164 "Python/bytecodes.c" + #line 2163 "Python/bytecodes.c" int res = Py_Is(left, right) ^ oparg; #line 1521 "Python/executor_cases.c.h" Py_DECREF(left); Py_DECREF(right); - #line 2166 "Python/bytecodes.c" + #line 2165 "Python/bytecodes.c" b = res ? Py_True : Py_False; #line 1526 "Python/executor_cases.c.h" STACK_SHRINK(1); @@ -1532,12 +1532,12 @@ PyObject *right = stack_pointer[-1]; PyObject *left = stack_pointer[-2]; PyObject *b; - #line 2170 "Python/bytecodes.c" + #line 2169 "Python/bytecodes.c" int res = PySequence_Contains(right, left); #line 1538 "Python/executor_cases.c.h" Py_DECREF(left); Py_DECREF(right); - #line 2172 "Python/bytecodes.c" + #line 2171 "Python/bytecodes.c" if (res < 0) goto pop_2_error; b = (res ^ oparg) ? Py_True : Py_False; #line 1544 "Python/executor_cases.c.h" @@ -1551,12 +1551,12 @@ PyObject *exc_value = stack_pointer[-2]; PyObject *rest; PyObject *match; - #line 2177 "Python/bytecodes.c" + #line 2176 "Python/bytecodes.c" if (check_except_star_type_valid(tstate, match_type) < 0) { #line 1557 "Python/executor_cases.c.h" Py_DECREF(exc_value); Py_DECREF(match_type); - #line 2179 "Python/bytecodes.c" + #line 2178 "Python/bytecodes.c" if (true) goto pop_2_error; } @@ -1567,7 +1567,7 @@ #line 1568 "Python/executor_cases.c.h" Py_DECREF(exc_value); Py_DECREF(match_type); - #line 2187 "Python/bytecodes.c" + #line 2186 "Python/bytecodes.c" if (res < 0) goto pop_2_error; assert((match == NULL) == (rest == NULL)); @@ -1586,19 +1586,19 @@ PyObject *right = stack_pointer[-1]; PyObject *left = stack_pointer[-2]; PyObject *b; - #line 2198 "Python/bytecodes.c" + #line 2197 "Python/bytecodes.c" assert(PyExceptionInstance_Check(left)); if (check_except_type_valid(tstate, right) < 0) { #line 1593 "Python/executor_cases.c.h" Py_DECREF(right); - #line 2201 "Python/bytecodes.c" + #line 2200 "Python/bytecodes.c" if (true) goto pop_1_error; } int res = PyErr_GivenExceptionMatches(left, right); #line 1600 "Python/executor_cases.c.h" Py_DECREF(right); - #line 2206 "Python/bytecodes.c" + #line 2205 "Python/bytecodes.c" b = res ? Py_True : Py_False; #line 1604 "Python/executor_cases.c.h" stack_pointer[-1] = b; @@ -1608,7 +1608,7 @@ case GET_LEN: { PyObject *obj = stack_pointer[-1]; PyObject *len_o; - #line 2305 "Python/bytecodes.c" + #line 2304 "Python/bytecodes.c" // PUSH(len(TOS)) Py_ssize_t len_i = PyObject_Length(obj); if (len_i < 0) goto error; @@ -1625,7 +1625,7 @@ PyObject *type = stack_pointer[-2]; PyObject *subject = stack_pointer[-3]; PyObject *attrs; - #line 2313 "Python/bytecodes.c" + #line 2312 "Python/bytecodes.c" // Pop TOS and TOS1. Set TOS to a tuple of attributes on success, or // None on failure. assert(PyTuple_CheckExact(names)); @@ -1634,7 +1634,7 @@ Py_DECREF(subject); Py_DECREF(type); Py_DECREF(names); - #line 2318 "Python/bytecodes.c" + #line 2317 "Python/bytecodes.c" if (attrs) { assert(PyTuple_CheckExact(attrs)); // Success! } @@ -1651,7 +1651,7 @@ case MATCH_MAPPING: { PyObject *subject = stack_pointer[-1]; PyObject *res; - #line 2328 "Python/bytecodes.c" + #line 2327 "Python/bytecodes.c" int match = Py_TYPE(subject)->tp_flags & Py_TPFLAGS_MAPPING; res = match ? Py_True : Py_False; #line 1658 "Python/executor_cases.c.h" @@ -1663,7 +1663,7 @@ case MATCH_SEQUENCE: { PyObject *subject = stack_pointer[-1]; PyObject *res; - #line 2333 "Python/bytecodes.c" + #line 2332 "Python/bytecodes.c" int match = Py_TYPE(subject)->tp_flags & Py_TPFLAGS_SEQUENCE; res = match ? Py_True : Py_False; #line 1670 "Python/executor_cases.c.h" @@ -1676,7 +1676,7 @@ PyObject *keys = stack_pointer[-1]; PyObject *subject = stack_pointer[-2]; PyObject *values_or_none; - #line 2338 "Python/bytecodes.c" + #line 2337 "Python/bytecodes.c" // On successful match, PUSH(values). Otherwise, PUSH(None). values_or_none = match_keys(tstate, subject, keys); if (values_or_none == NULL) goto error; @@ -1689,12 +1689,12 @@ case GET_ITER: { PyObject *iterable = stack_pointer[-1]; PyObject *iter; - #line 2344 "Python/bytecodes.c" + #line 2343 "Python/bytecodes.c" /* before: [obj]; after [getiter(obj)] */ iter = PyObject_GetIter(iterable); #line 1696 "Python/executor_cases.c.h" Py_DECREF(iterable); - #line 2347 "Python/bytecodes.c" + #line 2346 "Python/bytecodes.c" if (iter == NULL) goto pop_1_error; #line 1700 "Python/executor_cases.c.h" stack_pointer[-1] = iter; @@ -1704,7 +1704,7 @@ case GET_YIELD_FROM_ITER: { PyObject *iterable = stack_pointer[-1]; PyObject *iter; - #line 2351 "Python/bytecodes.c" + #line 2350 "Python/bytecodes.c" /* before: [obj]; after [getiter(obj)] */ if (PyCoro_CheckExact(iterable)) { /* `iterable` is a coroutine */ @@ -1729,7 +1729,7 @@ } #line 1731 "Python/executor_cases.c.h" Py_DECREF(iterable); - #line 2374 "Python/bytecodes.c" + #line 2373 "Python/bytecodes.c" } #line 1735 "Python/executor_cases.c.h" stack_pointer[-1] = iter; @@ -1741,7 +1741,7 @@ PyObject *lasti = stack_pointer[-3]; PyObject *exit_func = stack_pointer[-4]; PyObject *res; - #line 2606 "Python/bytecodes.c" + #line 2605 "Python/bytecodes.c" /* At the top of the stack are 4 values: - val: TOP = exc_info() - unused: SECOND = previous exception @@ -1771,7 +1771,7 @@ case PUSH_EXC_INFO: { PyObject *new_exc = stack_pointer[-1]; PyObject *prev_exc; - #line 2645 "Python/bytecodes.c" + #line 2644 "Python/bytecodes.c" _PyErr_StackItem *exc_info = tstate->exc_info; if (exc_info->exc_value != NULL) { prev_exc = exc_info->exc_value; @@ -1790,7 +1790,7 @@ case EXIT_INIT_CHECK: { PyObject *should_be_none = stack_pointer[-1]; - #line 3014 "Python/bytecodes.c" + #line 3013 "Python/bytecodes.c" assert(STACK_LEVEL() == 2); if (should_be_none != Py_None) { PyErr_Format(PyExc_TypeError, @@ -1806,7 +1806,7 @@ case MAKE_FUNCTION: { PyObject *codeobj = stack_pointer[-1]; PyObject *func; - #line 3428 "Python/bytecodes.c" + #line 3427 "Python/bytecodes.c" PyFunctionObject *func_obj = (PyFunctionObject *) PyFunction_New(codeobj, GLOBALS()); @@ -1826,7 +1826,7 @@ case SET_FUNCTION_ATTRIBUTE: { PyObject *func = stack_pointer[-1]; PyObject *attr = stack_pointer[-2]; - #line 3442 "Python/bytecodes.c" + #line 3441 "Python/bytecodes.c" assert(PyFunction_Check(func)); PyFunctionObject *func_obj = (PyFunctionObject *)func; switch(oparg) { @@ -1862,13 +1862,13 @@ PyObject *stop = stack_pointer[-(1 + ((oparg == 3) ? 1 : 0))]; PyObject *start = stack_pointer[-(2 + ((oparg == 3) ? 1 : 0))]; PyObject *slice; - #line 3492 "Python/bytecodes.c" + #line 3491 "Python/bytecodes.c" slice = PySlice_New(start, stop, step); #line 1868 "Python/executor_cases.c.h" Py_DECREF(start); Py_DECREF(stop); Py_XDECREF(step); - #line 3494 "Python/bytecodes.c" + #line 3493 "Python/bytecodes.c" if (slice == NULL) { STACK_SHRINK(((oparg == 3) ? 1 : 0)); goto pop_2_error; } #line 1874 "Python/executor_cases.c.h" STACK_SHRINK(((oparg == 3) ? 1 : 0)); @@ -1880,7 +1880,7 @@ case CONVERT_VALUE: { PyObject *value = stack_pointer[-1]; PyObject *result; - #line 3498 "Python/bytecodes.c" + #line 3497 "Python/bytecodes.c" convertion_func_ptr conv_fn; assert(oparg >= FVC_STR && oparg <= FVC_ASCII); conv_fn = CONVERSION_FUNCTIONS[oparg]; @@ -1895,7 +1895,7 @@ case FORMAT_SIMPLE: { PyObject *value = stack_pointer[-1]; PyObject *res; - #line 3507 "Python/bytecodes.c" + #line 3506 "Python/bytecodes.c" /* If value is a unicode object, then we know the result * of format(value) is value itself. */ if (!PyUnicode_CheckExact(value)) { @@ -1915,7 +1915,7 @@ PyObject *fmt_spec = stack_pointer[-1]; PyObject *value = stack_pointer[-2]; PyObject *res; - #line 3520 "Python/bytecodes.c" + #line 3519 "Python/bytecodes.c" res = PyObject_Format(value, fmt_spec); Py_DECREF(value); Py_DECREF(fmt_spec); @@ -1929,7 +1929,7 @@ case COPY: { PyObject *bottom = stack_pointer[-(1 + (oparg-1))]; PyObject *top; - #line 3527 "Python/bytecodes.c" + #line 3526 "Python/bytecodes.c" assert(oparg > 0); top = Py_NewRef(bottom); #line 1936 "Python/executor_cases.c.h" @@ -1941,7 +1941,7 @@ case SWAP: { PyObject *top = stack_pointer[-1]; PyObject *bottom = stack_pointer[-(2 + (oparg-2))]; - #line 3552 "Python/bytecodes.c" + #line 3551 "Python/bytecodes.c" assert(oparg >= 2); #line 1947 "Python/executor_cases.c.h" stack_pointer[-1] = bottom; diff --git a/Python/generated_cases.c.h b/Python/generated_cases.c.h index 568d15ee7ed..21cd2d0126a 100644 --- a/Python/generated_cases.c.h +++ b/Python/generated_cases.c.h @@ -8,7 +8,7 @@ } TARGET(RESUME) { - #line 137 "Python/bytecodes.c" + #line 136 "Python/bytecodes.c" assert(tstate->cframe == &cframe); assert(frame == cframe.current_frame); /* Possibly combine this with eval breaker */ @@ -25,7 +25,7 @@ } TARGET(INSTRUMENTED_RESUME) { - #line 151 "Python/bytecodes.c" + #line 150 "Python/bytecodes.c" /* Possible performance enhancement: * We need to check the eval breaker anyway, can we * combine the instrument verison check and the eval breaker test? @@ -57,7 +57,7 @@ TARGET(LOAD_FAST_CHECK) { PyObject *value; - #line 183 "Python/bytecodes.c" + #line 182 "Python/bytecodes.c" value = GETLOCAL(oparg); if (value == NULL) goto unbound_local_error; Py_INCREF(value); @@ -69,7 +69,7 @@ TARGET(LOAD_FAST) { PyObject *value; - #line 189 "Python/bytecodes.c" + #line 188 "Python/bytecodes.c" value = GETLOCAL(oparg); assert(value != NULL); Py_INCREF(value); @@ -81,7 +81,7 @@ TARGET(LOAD_FAST_AND_CLEAR) { PyObject *value; - #line 195 "Python/bytecodes.c" + #line 194 "Python/bytecodes.c" value = GETLOCAL(oparg); // do not use SETLOCAL here, it decrefs the old value GETLOCAL(oparg) = NULL; @@ -94,7 +94,7 @@ TARGET(LOAD_FAST_LOAD_FAST) { PyObject *value1; PyObject *value2; - #line 201 "Python/bytecodes.c" + #line 200 "Python/bytecodes.c" uint32_t oparg1 = oparg >> 4; uint32_t oparg2 = oparg & 15; value1 = GETLOCAL(oparg1); @@ -110,7 +110,7 @@ TARGET(LOAD_CONST) { PyObject *value; - #line 210 "Python/bytecodes.c" + #line 209 "Python/bytecodes.c" value = GETITEM(FRAME_CO_CONSTS, oparg); Py_INCREF(value); #line 117 "Python/generated_cases.c.h" @@ -121,7 +121,7 @@ TARGET(STORE_FAST) { PyObject *value = stack_pointer[-1]; - #line 215 "Python/bytecodes.c" + #line 214 "Python/bytecodes.c" SETLOCAL(oparg, value); #line 127 "Python/generated_cases.c.h" STACK_SHRINK(1); @@ -131,7 +131,7 @@ TARGET(STORE_FAST_LOAD_FAST) { PyObject *value1 = stack_pointer[-1]; PyObject *value2; - #line 223 "Python/bytecodes.c" + #line 222 "Python/bytecodes.c" uint32_t oparg1 = oparg >> 4; uint32_t oparg2 = oparg & 15; SETLOCAL(oparg1, value1); @@ -145,7 +145,7 @@ TARGET(STORE_FAST_STORE_FAST) { PyObject *value1 = stack_pointer[-1]; PyObject *value2 = stack_pointer[-2]; - #line 231 "Python/bytecodes.c" + #line 230 "Python/bytecodes.c" uint32_t oparg1 = oparg >> 4; uint32_t oparg2 = oparg & 15; SETLOCAL(oparg1, value1); @@ -157,7 +157,7 @@ TARGET(POP_TOP) { PyObject *value = stack_pointer[-1]; - #line 238 "Python/bytecodes.c" + #line 237 "Python/bytecodes.c" #line 162 "Python/generated_cases.c.h" Py_DECREF(value); STACK_SHRINK(1); @@ -166,7 +166,7 @@ TARGET(PUSH_NULL) { PyObject *res; - #line 242 "Python/bytecodes.c" + #line 241 "Python/bytecodes.c" res = NULL; #line 172 "Python/generated_cases.c.h" STACK_GROW(1); @@ -179,13 +179,13 @@ PyObject *_tmp_2 = stack_pointer[-2]; { PyObject *value = _tmp_1; - #line 238 "Python/bytecodes.c" + #line 237 "Python/bytecodes.c" #line 184 "Python/generated_cases.c.h" Py_DECREF(value); } { PyObject *value = _tmp_2; - #line 238 "Python/bytecodes.c" + #line 237 "Python/bytecodes.c" #line 190 "Python/generated_cases.c.h" Py_DECREF(value); } @@ -196,7 +196,7 @@ TARGET(INSTRUMENTED_END_FOR) { PyObject *value = stack_pointer[-1]; PyObject *receiver = stack_pointer[-2]; - #line 248 "Python/bytecodes.c" + #line 247 "Python/bytecodes.c" /* Need to create a fake StopIteration error here, * to conform to PEP 380 */ if (PyGen_Check(receiver)) { @@ -216,7 +216,7 @@ TARGET(END_SEND) { PyObject *value = stack_pointer[-1]; PyObject *receiver = stack_pointer[-2]; - #line 261 "Python/bytecodes.c" + #line 260 "Python/bytecodes.c" Py_DECREF(receiver); #line 222 "Python/generated_cases.c.h" STACK_SHRINK(1); @@ -227,7 +227,7 @@ TARGET(INSTRUMENTED_END_SEND) { PyObject *value = stack_pointer[-1]; PyObject *receiver = stack_pointer[-2]; - #line 265 "Python/bytecodes.c" + #line 264 "Python/bytecodes.c" if (PyGen_Check(receiver) || PyCoro_CheckExact(receiver)) { PyErr_SetObject(PyExc_StopIteration, value); if (monitor_stop_iteration(tstate, frame, next_instr-1)) { @@ -245,11 +245,11 @@ TARGET(UNARY_NEGATIVE) { PyObject *value = stack_pointer[-1]; PyObject *res; - #line 276 "Python/bytecodes.c" + #line 275 "Python/bytecodes.c" res = PyNumber_Negative(value); #line 251 "Python/generated_cases.c.h" Py_DECREF(value); - #line 278 "Python/bytecodes.c" + #line 277 "Python/bytecodes.c" if (res == NULL) goto pop_1_error; #line 255 "Python/generated_cases.c.h" stack_pointer[-1] = res; @@ -259,7 +259,7 @@ TARGET(UNARY_NOT) { PyObject *value = stack_pointer[-1]; PyObject *res; - #line 282 "Python/bytecodes.c" + #line 281 "Python/bytecodes.c" assert(PyBool_Check(value)); res = Py_IsFalse(value) ? Py_True : Py_False; #line 266 "Python/generated_cases.c.h" @@ -272,7 +272,7 @@ static_assert(INLINE_CACHE_ENTRIES_TO_BOOL == 3, "incorrect cache size"); PyObject *value = stack_pointer[-1]; PyObject *res; - #line 297 "Python/bytecodes.c" + #line 296 "Python/bytecodes.c" #if ENABLE_SPECIALIZATION _PyToBoolCache *cache = (_PyToBoolCache *)next_instr; if (ADAPTIVE_COUNTER_IS_ZERO(cache->counter)) { @@ -286,7 +286,7 @@ int err = PyObject_IsTrue(value); #line 288 "Python/generated_cases.c.h" Py_DECREF(value); - #line 309 "Python/bytecodes.c" + #line 308 "Python/bytecodes.c" if (err < 0) goto pop_1_error; res = err ? Py_True : Py_False; #line 293 "Python/generated_cases.c.h" @@ -297,7 +297,7 @@ TARGET(TO_BOOL_BOOL) { PyObject *value = stack_pointer[-1]; - #line 314 "Python/bytecodes.c" + #line 313 "Python/bytecodes.c" DEOPT_IF(!PyBool_Check(value), TO_BOOL); STAT_INC(TO_BOOL, hit); #line 304 "Python/generated_cases.c.h" @@ -308,7 +308,7 @@ TARGET(TO_BOOL_INT) { PyObject *value = stack_pointer[-1]; PyObject *res; - #line 319 "Python/bytecodes.c" + #line 318 "Python/bytecodes.c" DEOPT_IF(!PyLong_CheckExact(value), TO_BOOL); STAT_INC(TO_BOOL, hit); if (_PyLong_IsZero((PyLongObject *)value)) { @@ -318,7 +318,7 @@ else { #line 320 "Python/generated_cases.c.h" Py_DECREF(value); - #line 327 "Python/bytecodes.c" + #line 326 "Python/bytecodes.c" res = Py_True; } #line 325 "Python/generated_cases.c.h" @@ -330,7 +330,7 @@ TARGET(TO_BOOL_LIST) { PyObject *value = stack_pointer[-1]; PyObject *res; - #line 332 "Python/bytecodes.c" + #line 331 "Python/bytecodes.c" DEOPT_IF(!PyList_CheckExact(value), TO_BOOL); STAT_INC(TO_BOOL, hit); res = Py_SIZE(value) ? Py_True : Py_False; @@ -344,7 +344,7 @@ TARGET(TO_BOOL_NONE) { PyObject *value = stack_pointer[-1]; PyObject *res; - #line 339 "Python/bytecodes.c" + #line 338 "Python/bytecodes.c" // This one is a bit weird, because we expect *some* failures: DEOPT_IF(!Py_IsNone(value), TO_BOOL); STAT_INC(TO_BOOL, hit); @@ -358,7 +358,7 @@ TARGET(TO_BOOL_STR) { PyObject *value = stack_pointer[-1]; PyObject *res; - #line 346 "Python/bytecodes.c" + #line 345 "Python/bytecodes.c" DEOPT_IF(!PyUnicode_CheckExact(value), TO_BOOL); STAT_INC(TO_BOOL, hit); if (value == &_Py_STR(empty)) { @@ -369,7 +369,7 @@ assert(Py_SIZE(value)); #line 371 "Python/generated_cases.c.h" Py_DECREF(value); - #line 355 "Python/bytecodes.c" + #line 354 "Python/bytecodes.c" res = Py_True; } #line 376 "Python/generated_cases.c.h" @@ -382,14 +382,14 @@ PyObject *value = stack_pointer[-1]; PyObject *res; uint32_t version = read_u32(&next_instr[1].cache); - #line 360 "Python/bytecodes.c" + #line 359 "Python/bytecodes.c" // This one is a bit weird, because we expect *some* failures: assert(version); DEOPT_IF(Py_TYPE(value)->tp_version_tag != version, TO_BOOL); STAT_INC(TO_BOOL, hit); #line 391 "Python/generated_cases.c.h" Py_DECREF(value); - #line 365 "Python/bytecodes.c" + #line 364 "Python/bytecodes.c" res = Py_True; #line 395 "Python/generated_cases.c.h" stack_pointer[-1] = res; @@ -400,11 +400,11 @@ TARGET(UNARY_INVERT) { PyObject *value = stack_pointer[-1]; PyObject *res; - #line 369 "Python/bytecodes.c" + #line 368 "Python/bytecodes.c" res = PyNumber_Invert(value); #line 406 "Python/generated_cases.c.h" Py_DECREF(value); - #line 371 "Python/bytecodes.c" + #line 370 "Python/bytecodes.c" if (res == NULL) goto pop_1_error; #line 410 "Python/generated_cases.c.h" stack_pointer[-1] = res; @@ -417,7 +417,7 @@ { PyObject *right = _tmp_1; PyObject *left = _tmp_2; - #line 387 "Python/bytecodes.c" + #line 386 "Python/bytecodes.c" DEOPT_IF(!PyLong_CheckExact(left), BINARY_OP); DEOPT_IF(!PyLong_CheckExact(right), BINARY_OP); #line 424 "Python/generated_cases.c.h" @@ -428,7 +428,7 @@ PyObject *right = _tmp_1; PyObject *left = _tmp_2; PyObject *res; - #line 392 "Python/bytecodes.c" + #line 391 "Python/bytecodes.c" STAT_INC(BINARY_OP, hit); res = _PyLong_Multiply((PyLongObject *)left, (PyLongObject *)right); _Py_DECREF_SPECIALIZED(right, (destructor)PyObject_Free); @@ -449,7 +449,7 @@ { PyObject *right = _tmp_1; PyObject *left = _tmp_2; - #line 387 "Python/bytecodes.c" + #line 386 "Python/bytecodes.c" DEOPT_IF(!PyLong_CheckExact(left), BINARY_OP); DEOPT_IF(!PyLong_CheckExact(right), BINARY_OP); #line 456 "Python/generated_cases.c.h" @@ -460,7 +460,7 @@ PyObject *right = _tmp_1; PyObject *left = _tmp_2; PyObject *res; - #line 400 "Python/bytecodes.c" + #line 399 "Python/bytecodes.c" STAT_INC(BINARY_OP, hit); res = _PyLong_Add((PyLongObject *)left, (PyLongObject *)right); _Py_DECREF_SPECIALIZED(right, (destructor)PyObject_Free); @@ -481,7 +481,7 @@ { PyObject *right = _tmp_1; PyObject *left = _tmp_2; - #line 387 "Python/bytecodes.c" + #line 386 "Python/bytecodes.c" DEOPT_IF(!PyLong_CheckExact(left), BINARY_OP); DEOPT_IF(!PyLong_CheckExact(right), BINARY_OP); #line 488 "Python/generated_cases.c.h" @@ -492,7 +492,7 @@ PyObject *right = _tmp_1; PyObject *left = _tmp_2; PyObject *res; - #line 408 "Python/bytecodes.c" + #line 407 "Python/bytecodes.c" STAT_INC(BINARY_OP, hit); res = _PyLong_Subtract((PyLongObject *)left, (PyLongObject *)right); _Py_DECREF_SPECIALIZED(right, (destructor)PyObject_Free); @@ -513,7 +513,7 @@ { PyObject *right = _tmp_1; PyObject *left = _tmp_2; - #line 423 "Python/bytecodes.c" + #line 422 "Python/bytecodes.c" DEOPT_IF(!PyFloat_CheckExact(left), BINARY_OP); DEOPT_IF(!PyFloat_CheckExact(right), BINARY_OP); #line 520 "Python/generated_cases.c.h" @@ -524,7 +524,7 @@ PyObject *right = _tmp_1; PyObject *left = _tmp_2; PyObject *res; - #line 428 "Python/bytecodes.c" + #line 427 "Python/bytecodes.c" STAT_INC(BINARY_OP, hit); double dres = ((PyFloatObject *)left)->ob_fval * @@ -545,7 +545,7 @@ { PyObject *right = _tmp_1; PyObject *left = _tmp_2; - #line 423 "Python/bytecodes.c" + #line 422 "Python/bytecodes.c" DEOPT_IF(!PyFloat_CheckExact(left), BINARY_OP); DEOPT_IF(!PyFloat_CheckExact(right), BINARY_OP); #line 552 "Python/generated_cases.c.h" @@ -556,7 +556,7 @@ PyObject *right = _tmp_1; PyObject *left = _tmp_2; PyObject *res; - #line 436 "Python/bytecodes.c" + #line 435 "Python/bytecodes.c" STAT_INC(BINARY_OP, hit); double dres = ((PyFloatObject *)left)->ob_fval + @@ -577,7 +577,7 @@ { PyObject *right = _tmp_1; PyObject *left = _tmp_2; - #line 423 "Python/bytecodes.c" + #line 422 "Python/bytecodes.c" DEOPT_IF(!PyFloat_CheckExact(left), BINARY_OP); DEOPT_IF(!PyFloat_CheckExact(right), BINARY_OP); #line 584 "Python/generated_cases.c.h" @@ -588,7 +588,7 @@ PyObject *right = _tmp_1; PyObject *left = _tmp_2; PyObject *res; - #line 444 "Python/bytecodes.c" + #line 443 "Python/bytecodes.c" STAT_INC(BINARY_OP, hit); double dres = ((PyFloatObject *)left)->ob_fval - @@ -609,7 +609,7 @@ { PyObject *right = _tmp_1; PyObject *left = _tmp_2; - #line 459 "Python/bytecodes.c" + #line 458 "Python/bytecodes.c" DEOPT_IF(!PyUnicode_CheckExact(left), BINARY_OP); DEOPT_IF(!PyUnicode_CheckExact(right), BINARY_OP); #line 616 "Python/generated_cases.c.h" @@ -620,7 +620,7 @@ PyObject *right = _tmp_1; PyObject *left = _tmp_2; PyObject *res; - #line 464 "Python/bytecodes.c" + #line 463 "Python/bytecodes.c" STAT_INC(BINARY_OP, hit); res = PyUnicode_Concat(left, right); _Py_DECREF_SPECIALIZED(left, _PyUnicode_ExactDealloc); @@ -641,7 +641,7 @@ { PyObject *right = _tmp_1; PyObject *left = _tmp_2; - #line 459 "Python/bytecodes.c" + #line 458 "Python/bytecodes.c" DEOPT_IF(!PyUnicode_CheckExact(left), BINARY_OP); DEOPT_IF(!PyUnicode_CheckExact(right), BINARY_OP); #line 648 "Python/generated_cases.c.h" @@ -651,7 +651,7 @@ { PyObject *right = _tmp_1; PyObject *left = _tmp_2; - #line 481 "Python/bytecodes.c" + #line 480 "Python/bytecodes.c" _Py_CODEUNIT true_next = next_instr[INLINE_CACHE_ENTRIES_BINARY_OP]; assert(true_next.op.code == STORE_FAST); PyObject **target_local = &GETLOCAL(true_next.op.arg); @@ -687,7 +687,7 @@ PyObject *sub = stack_pointer[-1]; PyObject *container = stack_pointer[-2]; PyObject *res; - #line 518 "Python/bytecodes.c" + #line 517 "Python/bytecodes.c" #if ENABLE_SPECIALIZATION _PyBinarySubscrCache *cache = (_PyBinarySubscrCache *)next_instr; if (ADAPTIVE_COUNTER_IS_ZERO(cache->counter)) { @@ -702,7 +702,7 @@ #line 703 "Python/generated_cases.c.h" Py_DECREF(container); Py_DECREF(sub); - #line 530 "Python/bytecodes.c" + #line 529 "Python/bytecodes.c" if (res == NULL) goto pop_2_error; #line 708 "Python/generated_cases.c.h" STACK_SHRINK(1); @@ -716,7 +716,7 @@ PyObject *start = stack_pointer[-2]; PyObject *container = stack_pointer[-3]; PyObject *res; - #line 534 "Python/bytecodes.c" + #line 533 "Python/bytecodes.c" PyObject *slice = _PyBuildSlice_ConsumeRefs(start, stop); // Can't use ERROR_IF() here, because we haven't // DECREF'ed container yet, and we still own slice. @@ -740,7 +740,7 @@ PyObject *start = stack_pointer[-2]; PyObject *container = stack_pointer[-3]; PyObject *v = stack_pointer[-4]; - #line 549 "Python/bytecodes.c" + #line 548 "Python/bytecodes.c" PyObject *slice = _PyBuildSlice_ConsumeRefs(start, stop); int err; if (slice == NULL) { @@ -762,7 +762,7 @@ PyObject *sub = stack_pointer[-1]; PyObject *list = stack_pointer[-2]; PyObject *res; - #line 564 "Python/bytecodes.c" + #line 563 "Python/bytecodes.c" DEOPT_IF(!PyLong_CheckExact(sub), BINARY_SUBSCR); DEOPT_IF(!PyList_CheckExact(list), BINARY_SUBSCR); @@ -787,7 +787,7 @@ PyObject *sub = stack_pointer[-1]; PyObject *tuple = stack_pointer[-2]; PyObject *res; - #line 580 "Python/bytecodes.c" + #line 579 "Python/bytecodes.c" DEOPT_IF(!PyLong_CheckExact(sub), BINARY_SUBSCR); DEOPT_IF(!PyTuple_CheckExact(tuple), BINARY_SUBSCR); @@ -812,7 +812,7 @@ PyObject *sub = stack_pointer[-1]; PyObject *dict = stack_pointer[-2]; PyObject *res; - #line 596 "Python/bytecodes.c" + #line 595 "Python/bytecodes.c" DEOPT_IF(!PyDict_CheckExact(dict), BINARY_SUBSCR); STAT_INC(BINARY_SUBSCR, hit); res = PyDict_GetItemWithError(dict, sub); @@ -823,7 +823,7 @@ #line 824 "Python/generated_cases.c.h" Py_DECREF(dict); Py_DECREF(sub); - #line 604 "Python/bytecodes.c" + #line 603 "Python/bytecodes.c" if (true) goto pop_2_error; } Py_INCREF(res); // Do this before DECREF'ing dict, sub @@ -839,7 +839,7 @@ TARGET(BINARY_SUBSCR_GETITEM) { PyObject *sub = stack_pointer[-1]; PyObject *container = stack_pointer[-2]; - #line 611 "Python/bytecodes.c" + #line 610 "Python/bytecodes.c" DEOPT_IF(tstate->interp->eval_frame, BINARY_SUBSCR); PyTypeObject *tp = Py_TYPE(container); DEOPT_IF(!PyType_HasFeature(tp, Py_TPFLAGS_HEAPTYPE), BINARY_SUBSCR); @@ -868,7 +868,7 @@ TARGET(LIST_APPEND) { PyObject *v = stack_pointer[-1]; PyObject *list = stack_pointer[-(2 + (oparg-1))]; - #line 636 "Python/bytecodes.c" + #line 635 "Python/bytecodes.c" if (_PyList_AppendTakeRef((PyListObject *)list, v) < 0) goto pop_1_error; #line 874 "Python/generated_cases.c.h" STACK_SHRINK(1); @@ -878,11 +878,11 @@ TARGET(SET_ADD) { PyObject *v = stack_pointer[-1]; PyObject *set = stack_pointer[-(2 + (oparg-1))]; - #line 640 "Python/bytecodes.c" + #line 639 "Python/bytecodes.c" int err = PySet_Add(set, v); #line 884 "Python/generated_cases.c.h" Py_DECREF(v); - #line 642 "Python/bytecodes.c" + #line 641 "Python/bytecodes.c" if (err) goto pop_1_error; #line 888 "Python/generated_cases.c.h" STACK_SHRINK(1); @@ -896,7 +896,7 @@ PyObject *container = stack_pointer[-2]; PyObject *v = stack_pointer[-3]; uint16_t counter = read_u16(&next_instr[0].cache); - #line 652 "Python/bytecodes.c" + #line 651 "Python/bytecodes.c" #if ENABLE_SPECIALIZATION if (ADAPTIVE_COUNTER_IS_ZERO(counter)) { next_instr--; @@ -915,7 +915,7 @@ Py_DECREF(v); Py_DECREF(container); Py_DECREF(sub); - #line 667 "Python/bytecodes.c" + #line 666 "Python/bytecodes.c" if (err) goto pop_3_error; #line 921 "Python/generated_cases.c.h" STACK_SHRINK(3); @@ -927,7 +927,7 @@ PyObject *sub = stack_pointer[-1]; PyObject *list = stack_pointer[-2]; PyObject *value = stack_pointer[-3]; - #line 671 "Python/bytecodes.c" + #line 670 "Python/bytecodes.c" DEOPT_IF(!PyLong_CheckExact(sub), STORE_SUBSCR); DEOPT_IF(!PyList_CheckExact(list), STORE_SUBSCR); @@ -954,7 +954,7 @@ PyObject *sub = stack_pointer[-1]; PyObject *dict = stack_pointer[-2]; PyObject *value = stack_pointer[-3]; - #line 690 "Python/bytecodes.c" + #line 689 "Python/bytecodes.c" DEOPT_IF(!PyDict_CheckExact(dict), STORE_SUBSCR); STAT_INC(STORE_SUBSCR, hit); int err = _PyDict_SetItem_Take2((PyDictObject *)dict, sub, value); @@ -969,13 +969,13 @@ TARGET(DELETE_SUBSCR) { PyObject *sub = stack_pointer[-1]; PyObject *container = stack_pointer[-2]; - #line 698 "Python/bytecodes.c" + #line 697 "Python/bytecodes.c" /* del container[sub] */ int err = PyObject_DelItem(container, sub); #line 976 "Python/generated_cases.c.h" Py_DECREF(container); Py_DECREF(sub); - #line 701 "Python/bytecodes.c" + #line 700 "Python/bytecodes.c" if (err) goto pop_2_error; #line 981 "Python/generated_cases.c.h" STACK_SHRINK(2); @@ -985,12 +985,12 @@ TARGET(CALL_INTRINSIC_1) { PyObject *value = stack_pointer[-1]; PyObject *res; - #line 705 "Python/bytecodes.c" + #line 704 "Python/bytecodes.c" assert(oparg <= MAX_INTRINSIC_1); res = _PyIntrinsics_UnaryFunctions[oparg](tstate, value); #line 992 "Python/generated_cases.c.h" Py_DECREF(value); - #line 708 "Python/bytecodes.c" + #line 707 "Python/bytecodes.c" if (res == NULL) goto pop_1_error; #line 996 "Python/generated_cases.c.h" stack_pointer[-1] = res; @@ -1001,13 +1001,13 @@ PyObject *value1 = stack_pointer[-1]; PyObject *value2 = stack_pointer[-2]; PyObject *res; - #line 712 "Python/bytecodes.c" + #line 711 "Python/bytecodes.c" assert(oparg <= MAX_INTRINSIC_2); res = _PyIntrinsics_BinaryFunctions[oparg](tstate, value2, value1); #line 1008 "Python/generated_cases.c.h" Py_DECREF(value2); Py_DECREF(value1); - #line 715 "Python/bytecodes.c" + #line 714 "Python/bytecodes.c" if (res == NULL) goto pop_2_error; #line 1013 "Python/generated_cases.c.h" STACK_SHRINK(1); @@ -1017,7 +1017,7 @@ TARGET(RAISE_VARARGS) { PyObject **args = (stack_pointer - oparg); - #line 719 "Python/bytecodes.c" + #line 718 "Python/bytecodes.c" PyObject *cause = NULL, *exc = NULL; switch (oparg) { case 2: @@ -1040,7 +1040,7 @@ TARGET(INTERPRETER_EXIT) { PyObject *retval = stack_pointer[-1]; - #line 739 "Python/bytecodes.c" + #line 738 "Python/bytecodes.c" assert(frame == &entry_frame); assert(_PyFrame_IsIncomplete(frame)); /* Restore previous cframe and return. */ @@ -1054,7 +1054,7 @@ TARGET(RETURN_VALUE) { PyObject *retval = stack_pointer[-1]; - #line 750 "Python/bytecodes.c" + #line 749 "Python/bytecodes.c" STACK_SHRINK(1); assert(EMPTY()); _PyFrame_SetStackPointer(frame, stack_pointer); @@ -1072,7 +1072,7 @@ TARGET(INSTRUMENTED_RETURN_VALUE) { PyObject *retval = stack_pointer[-1]; - #line 765 "Python/bytecodes.c" + #line 764 "Python/bytecodes.c" int err = _Py_call_instrumentation_arg( tstate, PY_MONITORING_EVENT_PY_RETURN, frame, next_instr-1, retval); @@ -1093,7 +1093,7 @@ } TARGET(RETURN_CONST) { - #line 784 "Python/bytecodes.c" + #line 783 "Python/bytecodes.c" PyObject *retval = GETITEM(FRAME_CO_CONSTS, oparg); Py_INCREF(retval); assert(EMPTY()); @@ -1111,7 +1111,7 @@ } TARGET(INSTRUMENTED_RETURN_CONST) { - #line 800 "Python/bytecodes.c" + #line 799 "Python/bytecodes.c" PyObject *retval = GETITEM(FRAME_CO_CONSTS, oparg); int err = _Py_call_instrumentation_arg( tstate, PY_MONITORING_EVENT_PY_RETURN, @@ -1135,7 +1135,7 @@ TARGET(GET_AITER) { PyObject *obj = stack_pointer[-1]; PyObject *iter; - #line 820 "Python/bytecodes.c" + #line 819 "Python/bytecodes.c" unaryfunc getter = NULL; PyTypeObject *type = Py_TYPE(obj); @@ -1150,14 +1150,14 @@ type->tp_name); #line 1152 "Python/generated_cases.c.h" Py_DECREF(obj); - #line 833 "Python/bytecodes.c" + #line 832 "Python/bytecodes.c" if (true) goto pop_1_error; } iter = (*getter)(obj); #line 1159 "Python/generated_cases.c.h" Py_DECREF(obj); - #line 838 "Python/bytecodes.c" + #line 837 "Python/bytecodes.c" if (iter == NULL) goto pop_1_error; if (Py_TYPE(iter)->tp_as_async == NULL || @@ -1178,7 +1178,7 @@ TARGET(GET_ANEXT) { PyObject *aiter = stack_pointer[-1]; PyObject *awaitable; - #line 853 "Python/bytecodes.c" + #line 852 "Python/bytecodes.c" unaryfunc getter = NULL; PyObject *next_iter = NULL; PyTypeObject *type = Py_TYPE(aiter); @@ -1230,7 +1230,7 @@ TARGET(GET_AWAITABLE) { PyObject *iterable = stack_pointer[-1]; PyObject *iter; - #line 898 "Python/bytecodes.c" + #line 897 "Python/bytecodes.c" iter = _PyCoro_GetAwaitableIter(iterable); if (iter == NULL) { @@ -1239,7 +1239,7 @@ #line 1241 "Python/generated_cases.c.h" Py_DECREF(iterable); - #line 905 "Python/bytecodes.c" + #line 904 "Python/bytecodes.c" if (iter != NULL && PyCoro_CheckExact(iter)) { PyObject *yf = _PyGen_yf((PyGenObject*)iter); @@ -1267,7 +1267,7 @@ PyObject *v = stack_pointer[-1]; PyObject *receiver = stack_pointer[-2]; PyObject *retval; - #line 929 "Python/bytecodes.c" + #line 928 "Python/bytecodes.c" #if ENABLE_SPECIALIZATION _PySendCache *cache = (_PySendCache *)next_instr; if (ADAPTIVE_COUNTER_IS_ZERO(cache->counter)) { @@ -1323,7 +1323,7 @@ TARGET(SEND_GEN) { PyObject *v = stack_pointer[-1]; PyObject *receiver = stack_pointer[-2]; - #line 978 "Python/bytecodes.c" + #line 977 "Python/bytecodes.c" DEOPT_IF(tstate->interp->eval_frame, SEND); PyGenObject *gen = (PyGenObject *)receiver; DEOPT_IF(Py_TYPE(gen) != &PyGen_Type && @@ -1344,7 +1344,7 @@ TARGET(INSTRUMENTED_YIELD_VALUE) { PyObject *retval = stack_pointer[-1]; - #line 996 "Python/bytecodes.c" + #line 995 "Python/bytecodes.c" assert(frame != &entry_frame); assert(oparg >= 0); /* make the generator identify this as HAS_ARG */ PyGenObject *gen = _PyFrame_GetGenerator(frame); @@ -1367,7 +1367,7 @@ TARGET(YIELD_VALUE) { PyObject *retval = stack_pointer[-1]; - #line 1016 "Python/bytecodes.c" + #line 1015 "Python/bytecodes.c" // NOTE: It's important that YIELD_VALUE never raises an exception! // The compiler treats any exception raised here as a failed close() // or throw() call. @@ -1389,7 +1389,7 @@ TARGET(POP_EXCEPT) { PyObject *exc_value = stack_pointer[-1]; - #line 1035 "Python/bytecodes.c" + #line 1034 "Python/bytecodes.c" _PyErr_StackItem *exc_info = tstate->exc_info; Py_XSETREF(exc_info->exc_value, exc_value); #line 1396 "Python/generated_cases.c.h" @@ -1400,7 +1400,7 @@ TARGET(RERAISE) { PyObject *exc = stack_pointer[-1]; PyObject **values = (stack_pointer - (1 + oparg)); - #line 1040 "Python/bytecodes.c" + #line 1039 "Python/bytecodes.c" assert(oparg >= 0 && oparg <= 2); if (oparg) { PyObject *lasti = values[0]; @@ -1424,13 +1424,13 @@ TARGET(END_ASYNC_FOR) { PyObject *exc = stack_pointer[-1]; PyObject *awaitable = stack_pointer[-2]; - #line 1060 "Python/bytecodes.c" + #line 1059 "Python/bytecodes.c" assert(exc && PyExceptionInstance_Check(exc)); if (PyErr_GivenExceptionMatches(exc, PyExc_StopAsyncIteration)) { #line 1431 "Python/generated_cases.c.h" Py_DECREF(awaitable); Py_DECREF(exc); - #line 1063 "Python/bytecodes.c" + #line 1062 "Python/bytecodes.c" } else { Py_INCREF(exc); @@ -1448,7 +1448,7 @@ PyObject *sub_iter = stack_pointer[-3]; PyObject *none; PyObject *value; - #line 1072 "Python/bytecodes.c" + #line 1071 "Python/bytecodes.c" assert(throwflag); assert(exc_value && PyExceptionInstance_Check(exc_value)); if (PyErr_GivenExceptionMatches(exc_value, PyExc_StopIteration)) { @@ -1457,7 +1457,7 @@ Py_DECREF(sub_iter); Py_DECREF(last_sent_val); Py_DECREF(exc_value); - #line 1077 "Python/bytecodes.c" + #line 1076 "Python/bytecodes.c" none = Py_None; } else { @@ -1473,7 +1473,7 @@ TARGET(LOAD_ASSERTION_ERROR) { PyObject *value; - #line 1086 "Python/bytecodes.c" + #line 1085 "Python/bytecodes.c" value = Py_NewRef(PyExc_AssertionError); #line 1479 "Python/generated_cases.c.h" STACK_GROW(1); @@ -1483,7 +1483,7 @@ TARGET(LOAD_BUILD_CLASS) { PyObject *bc; - #line 1090 "Python/bytecodes.c" + #line 1089 "Python/bytecodes.c" if (PyDict_CheckExact(BUILTINS())) { bc = _PyDict_GetItemWithError(BUILTINS(), &_Py_ID(__build_class__)); @@ -1513,7 +1513,7 @@ TARGET(STORE_NAME) { PyObject *v = stack_pointer[-1]; - #line 1115 "Python/bytecodes.c" + #line 1114 "Python/bytecodes.c" PyObject *name = GETITEM(FRAME_CO_NAMES, oparg); PyObject *ns = LOCALS(); int err; @@ -1522,7 +1522,7 @@ "no locals found when storing %R", name); #line 1524 "Python/generated_cases.c.h" Py_DECREF(v); - #line 1122 "Python/bytecodes.c" + #line 1121 "Python/bytecodes.c" if (true) goto pop_1_error; } if (PyDict_CheckExact(ns)) @@ -1531,7 +1531,7 @@ err = PyObject_SetItem(ns, name, v); #line 1533 "Python/generated_cases.c.h" Py_DECREF(v); - #line 1129 "Python/bytecodes.c" + #line 1128 "Python/bytecodes.c" if (err) goto pop_1_error; #line 1537 "Python/generated_cases.c.h" STACK_SHRINK(1); @@ -1539,7 +1539,7 @@ } TARGET(DELETE_NAME) { - #line 1133 "Python/bytecodes.c" + #line 1132 "Python/bytecodes.c" PyObject *name = GETITEM(FRAME_CO_NAMES, oparg); PyObject *ns = LOCALS(); int err; @@ -1564,7 +1564,7 @@ PREDICTED(UNPACK_SEQUENCE); static_assert(INLINE_CACHE_ENTRIES_UNPACK_SEQUENCE == 1, "incorrect cache size"); PyObject *seq = stack_pointer[-1]; - #line 1159 "Python/bytecodes.c" + #line 1158 "Python/bytecodes.c" #if ENABLE_SPECIALIZATION _PyUnpackSequenceCache *cache = (_PyUnpackSequenceCache *)next_instr; if (ADAPTIVE_COUNTER_IS_ZERO(cache->counter)) { @@ -1579,7 +1579,7 @@ int res = unpack_iterable(tstate, seq, oparg, -1, top); #line 1581 "Python/generated_cases.c.h" Py_DECREF(seq); - #line 1172 "Python/bytecodes.c" + #line 1171 "Python/bytecodes.c" if (res == 0) goto pop_1_error; #line 1585 "Python/generated_cases.c.h" STACK_SHRINK(1); @@ -1591,7 +1591,7 @@ TARGET(UNPACK_SEQUENCE_TWO_TUPLE) { PyObject *seq = stack_pointer[-1]; PyObject **values = stack_pointer - (1); - #line 1176 "Python/bytecodes.c" + #line 1175 "Python/bytecodes.c" DEOPT_IF(!PyTuple_CheckExact(seq), UNPACK_SEQUENCE); DEOPT_IF(PyTuple_GET_SIZE(seq) != 2, UNPACK_SEQUENCE); assert(oparg == 2); @@ -1609,7 +1609,7 @@ TARGET(UNPACK_SEQUENCE_TUPLE) { PyObject *seq = stack_pointer[-1]; PyObject **values = stack_pointer - (1); - #line 1186 "Python/bytecodes.c" + #line 1185 "Python/bytecodes.c" DEOPT_IF(!PyTuple_CheckExact(seq), UNPACK_SEQUENCE); DEOPT_IF(PyTuple_GET_SIZE(seq) != oparg, UNPACK_SEQUENCE); STAT_INC(UNPACK_SEQUENCE, hit); @@ -1628,7 +1628,7 @@ TARGET(UNPACK_SEQUENCE_LIST) { PyObject *seq = stack_pointer[-1]; PyObject **values = stack_pointer - (1); - #line 1197 "Python/bytecodes.c" + #line 1196 "Python/bytecodes.c" DEOPT_IF(!PyList_CheckExact(seq), UNPACK_SEQUENCE); DEOPT_IF(PyList_GET_SIZE(seq) != oparg, UNPACK_SEQUENCE); STAT_INC(UNPACK_SEQUENCE, hit); @@ -1646,13 +1646,13 @@ TARGET(UNPACK_EX) { PyObject *seq = stack_pointer[-1]; - #line 1208 "Python/bytecodes.c" + #line 1207 "Python/bytecodes.c" int totalargs = 1 + (oparg & 0xFF) + (oparg >> 8); PyObject **top = stack_pointer + totalargs - 1; int res = unpack_iterable(tstate, seq, oparg & 0xFF, oparg >> 8, top); #line 1654 "Python/generated_cases.c.h" Py_DECREF(seq); - #line 1212 "Python/bytecodes.c" + #line 1211 "Python/bytecodes.c" if (res == 0) goto pop_1_error; #line 1658 "Python/generated_cases.c.h" STACK_GROW((oparg & 0xFF) + (oparg >> 8)); @@ -1665,7 +1665,7 @@ PyObject *owner = stack_pointer[-1]; PyObject *v = stack_pointer[-2]; uint16_t counter = read_u16(&next_instr[0].cache); - #line 1223 "Python/bytecodes.c" + #line 1222 "Python/bytecodes.c" #if ENABLE_SPECIALIZATION if (ADAPTIVE_COUNTER_IS_ZERO(counter)) { PyObject *name = GETITEM(FRAME_CO_NAMES, oparg); @@ -1684,7 +1684,7 @@ #line 1685 "Python/generated_cases.c.h" Py_DECREF(v); Py_DECREF(owner); - #line 1239 "Python/bytecodes.c" + #line 1238 "Python/bytecodes.c" if (err) goto pop_2_error; #line 1690 "Python/generated_cases.c.h" STACK_SHRINK(2); @@ -1694,12 +1694,12 @@ TARGET(DELETE_ATTR) { PyObject *owner = stack_pointer[-1]; - #line 1243 "Python/bytecodes.c" + #line 1242 "Python/bytecodes.c" PyObject *name = GETITEM(FRAME_CO_NAMES, oparg); int err = PyObject_SetAttr(owner, name, (PyObject *)NULL); #line 1701 "Python/generated_cases.c.h" Py_DECREF(owner); - #line 1246 "Python/bytecodes.c" + #line 1245 "Python/bytecodes.c" if (err) goto pop_1_error; #line 1705 "Python/generated_cases.c.h" STACK_SHRINK(1); @@ -1708,12 +1708,12 @@ TARGET(STORE_GLOBAL) { PyObject *v = stack_pointer[-1]; - #line 1250 "Python/bytecodes.c" + #line 1249 "Python/bytecodes.c" PyObject *name = GETITEM(FRAME_CO_NAMES, oparg); int err = PyDict_SetItem(GLOBALS(), name, v); #line 1715 "Python/generated_cases.c.h" Py_DECREF(v); - #line 1253 "Python/bytecodes.c" + #line 1252 "Python/bytecodes.c" if (err) goto pop_1_error; #line 1719 "Python/generated_cases.c.h" STACK_SHRINK(1); @@ -1721,7 +1721,7 @@ } TARGET(DELETE_GLOBAL) { - #line 1257 "Python/bytecodes.c" + #line 1256 "Python/bytecodes.c" PyObject *name = GETITEM(FRAME_CO_NAMES, oparg); int err; err = PyDict_DelItem(GLOBALS(), name); @@ -1741,7 +1741,7 @@ PyObject *_tmp_1; { PyObject *locals; - #line 1271 "Python/bytecodes.c" + #line 1270 "Python/bytecodes.c" locals = LOCALS(); if (locals == NULL) { _PyErr_SetString(tstate, PyExc_SystemError, @@ -1761,7 +1761,7 @@ PyObject *_tmp_1; { PyObject *locals; - #line 1271 "Python/bytecodes.c" + #line 1270 "Python/bytecodes.c" locals = LOCALS(); if (locals == NULL) { _PyErr_SetString(tstate, PyExc_SystemError, @@ -1775,7 +1775,7 @@ { PyObject *mod_or_class_dict = _tmp_1; PyObject *v; - #line 1283 "Python/bytecodes.c" + #line 1282 "Python/bytecodes.c" PyObject *name = GETITEM(FRAME_CO_NAMES, oparg); if (PyDict_CheckExact(mod_or_class_dict)) { v = PyDict_GetItemWithError(mod_or_class_dict, name); @@ -1845,7 +1845,7 @@ { PyObject *mod_or_class_dict = _tmp_1; PyObject *v; - #line 1283 "Python/bytecodes.c" + #line 1282 "Python/bytecodes.c" PyObject *name = GETITEM(FRAME_CO_NAMES, oparg); if (PyDict_CheckExact(mod_or_class_dict)) { v = PyDict_GetItemWithError(mod_or_class_dict, name); @@ -1914,7 +1914,7 @@ static_assert(INLINE_CACHE_ENTRIES_LOAD_GLOBAL == 4, "incorrect cache size"); PyObject *null = NULL; PyObject *v; - #line 1352 "Python/bytecodes.c" + #line 1351 "Python/bytecodes.c" #if ENABLE_SPECIALIZATION _PyLoadGlobalCache *cache = (_PyLoadGlobalCache *)next_instr; if (ADAPTIVE_COUNTER_IS_ZERO(cache->counter)) { @@ -1980,7 +1980,7 @@ PyObject *res; uint16_t index = read_u16(&next_instr[1].cache); uint16_t version = read_u16(&next_instr[2].cache); - #line 1406 "Python/bytecodes.c" + #line 1405 "Python/bytecodes.c" DEOPT_IF(!PyDict_CheckExact(GLOBALS()), LOAD_GLOBAL); PyDictObject *dict = (PyDictObject *)GLOBALS(); DEOPT_IF(dict->ma_keys->dk_version != version, LOAD_GLOBAL); @@ -2006,7 +2006,7 @@ uint16_t index = read_u16(&next_instr[1].cache); uint16_t mod_version = read_u16(&next_instr[2].cache); uint16_t bltn_version = read_u16(&next_instr[3].cache); - #line 1419 "Python/bytecodes.c" + #line 1418 "Python/bytecodes.c" DEOPT_IF(!PyDict_CheckExact(GLOBALS()), LOAD_GLOBAL); DEOPT_IF(!PyDict_CheckExact(BUILTINS()), LOAD_GLOBAL); PyDictObject *mdict = (PyDictObject *)GLOBALS(); @@ -2031,7 +2031,7 @@ } TARGET(DELETE_FAST) { - #line 1436 "Python/bytecodes.c" + #line 1435 "Python/bytecodes.c" PyObject *v = GETLOCAL(oparg); if (v == NULL) goto unbound_local_error; SETLOCAL(oparg, NULL); @@ -2040,7 +2040,7 @@ } TARGET(MAKE_CELL) { - #line 1442 "Python/bytecodes.c" + #line 1441 "Python/bytecodes.c" // "initial" is probably NULL but not if it's an arg (or set // via PyFrame_LocalsToFast() before MAKE_CELL has run). PyObject *initial = GETLOCAL(oparg); @@ -2054,7 +2054,7 @@ } TARGET(DELETE_DEREF) { - #line 1453 "Python/bytecodes.c" + #line 1452 "Python/bytecodes.c" PyObject *cell = GETLOCAL(oparg); PyObject *oldobj = PyCell_GET(cell); // Can't use ERROR_IF here. @@ -2072,7 +2072,7 @@ TARGET(LOAD_FROM_DICT_OR_DEREF) { PyObject *class_dict = stack_pointer[-1]; PyObject *value; - #line 1466 "Python/bytecodes.c" + #line 1465 "Python/bytecodes.c" PyObject *name; assert(class_dict); assert(oparg >= 0 && oparg < _PyFrame_GetCode(frame)->co_nlocalsplus); @@ -2114,7 +2114,7 @@ TARGET(LOAD_DEREF) { PyObject *value; - #line 1503 "Python/bytecodes.c" + #line 1502 "Python/bytecodes.c" PyObject *cell = GETLOCAL(oparg); value = PyCell_GET(cell); if (value == NULL) { @@ -2130,7 +2130,7 @@ TARGET(STORE_DEREF) { PyObject *v = stack_pointer[-1]; - #line 1513 "Python/bytecodes.c" + #line 1512 "Python/bytecodes.c" PyObject *cell = GETLOCAL(oparg); PyObject *oldobj = PyCell_GET(cell); PyCell_SET(cell, v); @@ -2141,7 +2141,7 @@ } TARGET(COPY_FREE_VARS) { - #line 1520 "Python/bytecodes.c" + #line 1519 "Python/bytecodes.c" /* Copy closure variables to free variables */ PyCodeObject *co = _PyFrame_GetCode(frame); assert(PyFunction_Check(frame->f_funcobj)); @@ -2159,13 +2159,13 @@ TARGET(BUILD_STRING) { PyObject **pieces = (stack_pointer - oparg); PyObject *str; - #line 1533 "Python/bytecodes.c" + #line 1532 "Python/bytecodes.c" str = _PyUnicode_JoinArray(&_Py_STR(empty), pieces, oparg); #line 2165 "Python/generated_cases.c.h" for (int _i = oparg; --_i >= 0;) { Py_DECREF(pieces[_i]); } - #line 1535 "Python/bytecodes.c" + #line 1534 "Python/bytecodes.c" if (str == NULL) { STACK_SHRINK(oparg); goto error; } #line 2171 "Python/generated_cases.c.h" STACK_SHRINK(oparg); @@ -2177,7 +2177,7 @@ TARGET(BUILD_TUPLE) { PyObject **values = (stack_pointer - oparg); PyObject *tup; - #line 1539 "Python/bytecodes.c" + #line 1538 "Python/bytecodes.c" tup = _PyTuple_FromArraySteal(values, oparg); if (tup == NULL) { STACK_SHRINK(oparg); goto error; } #line 2184 "Python/generated_cases.c.h" @@ -2190,7 +2190,7 @@ TARGET(BUILD_LIST) { PyObject **values = (stack_pointer - oparg); PyObject *list; - #line 1544 "Python/bytecodes.c" + #line 1543 "Python/bytecodes.c" list = _PyList_FromArraySteal(values, oparg); if (list == NULL) { STACK_SHRINK(oparg); goto error; } #line 2197 "Python/generated_cases.c.h" @@ -2203,7 +2203,7 @@ TARGET(LIST_EXTEND) { PyObject *iterable = stack_pointer[-1]; PyObject *list = stack_pointer[-(2 + (oparg-1))]; - #line 1549 "Python/bytecodes.c" + #line 1548 "Python/bytecodes.c" PyObject *none_val = _PyList_Extend((PyListObject *)list, iterable); if (none_val == NULL) { if (_PyErr_ExceptionMatches(tstate, PyExc_TypeError) && @@ -2216,7 +2216,7 @@ } #line 2218 "Python/generated_cases.c.h" Py_DECREF(iterable); - #line 1560 "Python/bytecodes.c" + #line 1559 "Python/bytecodes.c" if (true) goto pop_1_error; } assert(Py_IsNone(none_val)); @@ -2229,11 +2229,11 @@ TARGET(SET_UPDATE) { PyObject *iterable = stack_pointer[-1]; PyObject *set = stack_pointer[-(2 + (oparg-1))]; - #line 1567 "Python/bytecodes.c" + #line 1566 "Python/bytecodes.c" int err = _PySet_Update(set, iterable); #line 2235 "Python/generated_cases.c.h" Py_DECREF(iterable); - #line 1569 "Python/bytecodes.c" + #line 1568 "Python/bytecodes.c" if (err < 0) goto pop_1_error; #line 2239 "Python/generated_cases.c.h" STACK_SHRINK(1); @@ -2243,7 +2243,7 @@ TARGET(BUILD_SET) { PyObject **values = (stack_pointer - oparg); PyObject *set; - #line 1573 "Python/bytecodes.c" + #line 1572 "Python/bytecodes.c" set = PySet_New(NULL); if (set == NULL) goto error; @@ -2268,7 +2268,7 @@ TARGET(BUILD_MAP) { PyObject **values = (stack_pointer - oparg*2); PyObject *map; - #line 1590 "Python/bytecodes.c" + #line 1589 "Python/bytecodes.c" map = _PyDict_FromItems( values, 2, values+1, 2, @@ -2280,7 +2280,7 @@ for (int _i = oparg*2; --_i >= 0;) { Py_DECREF(values[_i]); } - #line 1598 "Python/bytecodes.c" + #line 1597 "Python/bytecodes.c" if (map == NULL) { STACK_SHRINK(oparg*2); goto error; } #line 2286 "Python/generated_cases.c.h" STACK_SHRINK(oparg*2); @@ -2290,7 +2290,7 @@ } TARGET(SETUP_ANNOTATIONS) { - #line 1602 "Python/bytecodes.c" + #line 1601 "Python/bytecodes.c" int err; PyObject *ann_dict; if (LOCALS() == NULL) { @@ -2338,7 +2338,7 @@ PyObject *keys = stack_pointer[-1]; PyObject **values = (stack_pointer - (1 + oparg)); PyObject *map; - #line 1644 "Python/bytecodes.c" + #line 1643 "Python/bytecodes.c" if (!PyTuple_CheckExact(keys) || PyTuple_GET_SIZE(keys) != (Py_ssize_t)oparg) { _PyErr_SetString(tstate, PyExc_SystemError, @@ -2353,7 +2353,7 @@ Py_DECREF(values[_i]); } Py_DECREF(keys); - #line 1654 "Python/bytecodes.c" + #line 1653 "Python/bytecodes.c" if (map == NULL) { STACK_SHRINK(oparg); goto pop_1_error; } #line 2359 "Python/generated_cases.c.h" STACK_SHRINK(oparg); @@ -2363,7 +2363,7 @@ TARGET(DICT_UPDATE) { PyObject *update = stack_pointer[-1]; - #line 1658 "Python/bytecodes.c" + #line 1657 "Python/bytecodes.c" PyObject *dict = PEEK(oparg + 1); // update is still on the stack if (PyDict_Update(dict, update) < 0) { if (_PyErr_ExceptionMatches(tstate, PyExc_AttributeError)) { @@ -2373,7 +2373,7 @@ } #line 2375 "Python/generated_cases.c.h" Py_DECREF(update); - #line 1666 "Python/bytecodes.c" + #line 1665 "Python/bytecodes.c" if (true) goto pop_1_error; } #line 2380 "Python/generated_cases.c.h" @@ -2384,14 +2384,14 @@ TARGET(DICT_MERGE) { PyObject *update = stack_pointer[-1]; - #line 1672 "Python/bytecodes.c" + #line 1671 "Python/bytecodes.c" PyObject *dict = PEEK(oparg + 1); // update is still on the stack if (_PyDict_MergeEx(dict, update, 2) < 0) { format_kwargs_error(tstate, PEEK(3 + oparg), update); #line 2393 "Python/generated_cases.c.h" Py_DECREF(update); - #line 1677 "Python/bytecodes.c" + #line 1676 "Python/bytecodes.c" if (true) goto pop_1_error; } #line 2398 "Python/generated_cases.c.h" @@ -2403,7 +2403,7 @@ TARGET(MAP_ADD) { PyObject *value = stack_pointer[-1]; PyObject *key = stack_pointer[-2]; - #line 1683 "Python/bytecodes.c" + #line 1682 "Python/bytecodes.c" PyObject *dict = PEEK(oparg + 2); // key, value are still on the stack assert(PyDict_CheckExact(dict)); /* dict[key] = value */ @@ -2415,7 +2415,7 @@ } TARGET(INSTRUMENTED_LOAD_SUPER_ATTR) { - #line 1691 "Python/bytecodes.c" + #line 1690 "Python/bytecodes.c" _PySuperAttrCache *cache = (_PySuperAttrCache *)next_instr; // cancel out the decrement that will happen in LOAD_SUPER_ATTR; we // don't want to specialize instrumented instructions @@ -2432,7 +2432,7 @@ PyObject *global_super = stack_pointer[-3]; PyObject *res2 = NULL; PyObject *res; - #line 1705 "Python/bytecodes.c" + #line 1704 "Python/bytecodes.c" PyObject *name = GETITEM(FRAME_CO_NAMES, oparg >> 2); int load_method = oparg & 1; #if ENABLE_SPECIALIZATION @@ -2478,7 +2478,7 @@ Py_DECREF(global_super); Py_DECREF(class); Py_DECREF(self); - #line 1747 "Python/bytecodes.c" + #line 1746 "Python/bytecodes.c" if (super == NULL) goto pop_3_error; res = PyObject_GetAttr(super, name); Py_DECREF(super); @@ -2498,7 +2498,7 @@ PyObject *global_super = stack_pointer[-3]; PyObject *res2 = NULL; PyObject *res; - #line 1766 "Python/bytecodes.c" + #line 1765 "Python/bytecodes.c" assert(!(oparg & 1)); DEOPT_IF(global_super != (PyObject *)&PySuper_Type, LOAD_SUPER_ATTR); DEOPT_IF(!PyType_Check(class), LOAD_SUPER_ATTR); @@ -2509,7 +2509,7 @@ Py_DECREF(global_super); Py_DECREF(class); Py_DECREF(self); - #line 1773 "Python/bytecodes.c" + #line 1772 "Python/bytecodes.c" if (res == NULL) goto pop_3_error; #line 2515 "Python/generated_cases.c.h" STACK_SHRINK(2); @@ -2526,7 +2526,7 @@ PyObject *global_super = stack_pointer[-3]; PyObject *res2; PyObject *res; - #line 1777 "Python/bytecodes.c" + #line 1776 "Python/bytecodes.c" assert(oparg & 1); DEOPT_IF(global_super != (PyObject *)&PySuper_Type, LOAD_SUPER_ATTR); DEOPT_IF(!PyType_Check(class), LOAD_SUPER_ATTR); @@ -2563,7 +2563,7 @@ PyObject *owner = stack_pointer[-1]; PyObject *res2 = NULL; PyObject *res; - #line 1816 "Python/bytecodes.c" + #line 1815 "Python/bytecodes.c" #if ENABLE_SPECIALIZATION _PyAttrCache *cache = (_PyAttrCache *)next_instr; if (ADAPTIVE_COUNTER_IS_ZERO(cache->counter)) { @@ -2599,7 +2599,7 @@ */ #line 2601 "Python/generated_cases.c.h" Py_DECREF(owner); - #line 1850 "Python/bytecodes.c" + #line 1849 "Python/bytecodes.c" if (meth == NULL) goto pop_1_error; res2 = NULL; res = meth; @@ -2610,7 +2610,7 @@ res = PyObject_GetAttr(owner, name); #line 2612 "Python/generated_cases.c.h" Py_DECREF(owner); - #line 1859 "Python/bytecodes.c" + #line 1858 "Python/bytecodes.c" if (res == NULL) goto pop_1_error; } #line 2617 "Python/generated_cases.c.h" @@ -2627,7 +2627,7 @@ PyObject *res; uint32_t type_version = read_u32(&next_instr[1].cache); uint16_t index = read_u16(&next_instr[3].cache); - #line 1868 "Python/bytecodes.c" + #line 1867 "Python/bytecodes.c" PyTypeObject *tp = Py_TYPE(owner); assert(type_version != 0); DEOPT_IF(tp->tp_version_tag != type_version, LOAD_ATTR); @@ -2655,7 +2655,7 @@ PyObject *res; uint32_t type_version = read_u32(&next_instr[1].cache); uint16_t index = read_u16(&next_instr[3].cache); - #line 1884 "Python/bytecodes.c" + #line 1883 "Python/bytecodes.c" DEOPT_IF(!PyModule_CheckExact(owner), LOAD_ATTR); PyDictObject *dict = (PyDictObject *)((PyModuleObject *)owner)->md_dict; assert(dict != NULL); @@ -2683,7 +2683,7 @@ PyObject *res; uint32_t type_version = read_u32(&next_instr[1].cache); uint16_t index = read_u16(&next_instr[3].cache); - #line 1900 "Python/bytecodes.c" + #line 1899 "Python/bytecodes.c" PyTypeObject *tp = Py_TYPE(owner); assert(type_version != 0); DEOPT_IF(tp->tp_version_tag != type_version, LOAD_ATTR); @@ -2725,7 +2725,7 @@ PyObject *res; uint32_t type_version = read_u32(&next_instr[1].cache); uint16_t index = read_u16(&next_instr[3].cache); - #line 1930 "Python/bytecodes.c" + #line 1929 "Python/bytecodes.c" PyTypeObject *tp = Py_TYPE(owner); assert(type_version != 0); DEOPT_IF(tp->tp_version_tag != type_version, LOAD_ATTR); @@ -2750,7 +2750,7 @@ PyObject *res; uint32_t type_version = read_u32(&next_instr[1].cache); PyObject *descr = read_obj(&next_instr[5].cache); - #line 1943 "Python/bytecodes.c" + #line 1942 "Python/bytecodes.c" DEOPT_IF(!PyType_Check(cls), LOAD_ATTR); DEOPT_IF(((PyTypeObject *)cls)->tp_version_tag != type_version, @@ -2776,7 +2776,7 @@ uint32_t type_version = read_u32(&next_instr[1].cache); uint32_t func_version = read_u32(&next_instr[3].cache); PyObject *fget = read_obj(&next_instr[5].cache); - #line 1958 "Python/bytecodes.c" + #line 1957 "Python/bytecodes.c" DEOPT_IF(tstate->interp->eval_frame, LOAD_ATTR); PyTypeObject *cls = Py_TYPE(owner); @@ -2808,7 +2808,7 @@ uint32_t type_version = read_u32(&next_instr[1].cache); uint32_t func_version = read_u32(&next_instr[3].cache); PyObject *getattribute = read_obj(&next_instr[5].cache); - #line 1984 "Python/bytecodes.c" + #line 1983 "Python/bytecodes.c" DEOPT_IF(tstate->interp->eval_frame, LOAD_ATTR); PyTypeObject *cls = Py_TYPE(owner); DEOPT_IF(cls->tp_version_tag != type_version, LOAD_ATTR); @@ -2842,7 +2842,7 @@ PyObject *value = stack_pointer[-2]; uint32_t type_version = read_u32(&next_instr[1].cache); uint16_t index = read_u16(&next_instr[3].cache); - #line 2012 "Python/bytecodes.c" + #line 2011 "Python/bytecodes.c" PyTypeObject *tp = Py_TYPE(owner); assert(type_version != 0); DEOPT_IF(tp->tp_version_tag != type_version, STORE_ATTR); @@ -2871,7 +2871,7 @@ PyObject *value = stack_pointer[-2]; uint32_t type_version = read_u32(&next_instr[1].cache); uint16_t hint = read_u16(&next_instr[3].cache); - #line 2032 "Python/bytecodes.c" + #line 2031 "Python/bytecodes.c" PyTypeObject *tp = Py_TYPE(owner); assert(type_version != 0); DEOPT_IF(tp->tp_version_tag != type_version, STORE_ATTR); @@ -2921,7 +2921,7 @@ PyObject *value = stack_pointer[-2]; uint32_t type_version = read_u32(&next_instr[1].cache); uint16_t index = read_u16(&next_instr[3].cache); - #line 2073 "Python/bytecodes.c" + #line 2072 "Python/bytecodes.c" PyTypeObject *tp = Py_TYPE(owner); assert(type_version != 0); DEOPT_IF(tp->tp_version_tag != type_version, STORE_ATTR); @@ -2943,7 +2943,7 @@ PyObject *right = stack_pointer[-1]; PyObject *left = stack_pointer[-2]; PyObject *res; - #line 2092 "Python/bytecodes.c" + #line 2091 "Python/bytecodes.c" #if ENABLE_SPECIALIZATION _PyCompareOpCache *cache = (_PyCompareOpCache *)next_instr; if (ADAPTIVE_COUNTER_IS_ZERO(cache->counter)) { @@ -2959,7 +2959,7 @@ #line 2960 "Python/generated_cases.c.h" Py_DECREF(left); Py_DECREF(right); - #line 2105 "Python/bytecodes.c" + #line 2104 "Python/bytecodes.c" if (res == NULL) goto pop_2_error; if (oparg & 16) { int res_bool = PyObject_IsTrue(res); @@ -2978,7 +2978,7 @@ PyObject *right = stack_pointer[-1]; PyObject *left = stack_pointer[-2]; PyObject *res; - #line 2115 "Python/bytecodes.c" + #line 2114 "Python/bytecodes.c" DEOPT_IF(!PyFloat_CheckExact(left), COMPARE_OP); DEOPT_IF(!PyFloat_CheckExact(right), COMPARE_OP); STAT_INC(COMPARE_OP, hit); @@ -3001,7 +3001,7 @@ PyObject *right = stack_pointer[-1]; PyObject *left = stack_pointer[-2]; PyObject *res; - #line 2130 "Python/bytecodes.c" + #line 2129 "Python/bytecodes.c" DEOPT_IF(!PyLong_CheckExact(left), COMPARE_OP); DEOPT_IF(!PyLong_CheckExact(right), COMPARE_OP); DEOPT_IF(!_PyLong_IsCompact((PyLongObject *)left), COMPARE_OP); @@ -3028,7 +3028,7 @@ PyObject *right = stack_pointer[-1]; PyObject *left = stack_pointer[-2]; PyObject *res; - #line 2149 "Python/bytecodes.c" + #line 2148 "Python/bytecodes.c" DEOPT_IF(!PyUnicode_CheckExact(left), COMPARE_OP); DEOPT_IF(!PyUnicode_CheckExact(right), COMPARE_OP); STAT_INC(COMPARE_OP, hit); @@ -3052,12 +3052,12 @@ PyObject *right = stack_pointer[-1]; PyObject *left = stack_pointer[-2]; PyObject *b; - #line 2164 "Python/bytecodes.c" + #line 2163 "Python/bytecodes.c" int res = Py_Is(left, right) ^ oparg; #line 3058 "Python/generated_cases.c.h" Py_DECREF(left); Py_DECREF(right); - #line 2166 "Python/bytecodes.c" + #line 2165 "Python/bytecodes.c" b = res ? Py_True : Py_False; #line 3063 "Python/generated_cases.c.h" STACK_SHRINK(1); @@ -3069,12 +3069,12 @@ PyObject *right = stack_pointer[-1]; PyObject *left = stack_pointer[-2]; PyObject *b; - #line 2170 "Python/bytecodes.c" + #line 2169 "Python/bytecodes.c" int res = PySequence_Contains(right, left); #line 3075 "Python/generated_cases.c.h" Py_DECREF(left); Py_DECREF(right); - #line 2172 "Python/bytecodes.c" + #line 2171 "Python/bytecodes.c" if (res < 0) goto pop_2_error; b = (res ^ oparg) ? Py_True : Py_False; #line 3081 "Python/generated_cases.c.h" @@ -3088,12 +3088,12 @@ PyObject *exc_value = stack_pointer[-2]; PyObject *rest; PyObject *match; - #line 2177 "Python/bytecodes.c" + #line 2176 "Python/bytecodes.c" if (check_except_star_type_valid(tstate, match_type) < 0) { #line 3094 "Python/generated_cases.c.h" Py_DECREF(exc_value); Py_DECREF(match_type); - #line 2179 "Python/bytecodes.c" + #line 2178 "Python/bytecodes.c" if (true) goto pop_2_error; } @@ -3104,7 +3104,7 @@ #line 3105 "Python/generated_cases.c.h" Py_DECREF(exc_value); Py_DECREF(match_type); - #line 2187 "Python/bytecodes.c" + #line 2186 "Python/bytecodes.c" if (res < 0) goto pop_2_error; assert((match == NULL) == (rest == NULL)); @@ -3123,19 +3123,19 @@ PyObject *right = stack_pointer[-1]; PyObject *left = stack_pointer[-2]; PyObject *b; - #line 2198 "Python/bytecodes.c" + #line 2197 "Python/bytecodes.c" assert(PyExceptionInstance_Check(left)); if (check_except_type_valid(tstate, right) < 0) { #line 3130 "Python/generated_cases.c.h" Py_DECREF(right); - #line 2201 "Python/bytecodes.c" + #line 2200 "Python/bytecodes.c" if (true) goto pop_1_error; } int res = PyErr_GivenExceptionMatches(left, right); #line 3137 "Python/generated_cases.c.h" Py_DECREF(right); - #line 2206 "Python/bytecodes.c" + #line 2205 "Python/bytecodes.c" b = res ? Py_True : Py_False; #line 3141 "Python/generated_cases.c.h" stack_pointer[-1] = b; @@ -3146,13 +3146,13 @@ PyObject *fromlist = stack_pointer[-1]; PyObject *level = stack_pointer[-2]; PyObject *res; - #line 2210 "Python/bytecodes.c" + #line 2209 "Python/bytecodes.c" PyObject *name = GETITEM(FRAME_CO_NAMES, oparg); res = import_name(tstate, frame, name, fromlist, level); #line 3153 "Python/generated_cases.c.h" Py_DECREF(level); Py_DECREF(fromlist); - #line 2213 "Python/bytecodes.c" + #line 2212 "Python/bytecodes.c" if (res == NULL) goto pop_2_error; #line 3158 "Python/generated_cases.c.h" STACK_SHRINK(1); @@ -3163,7 +3163,7 @@ TARGET(IMPORT_FROM) { PyObject *from = stack_pointer[-1]; PyObject *res; - #line 2217 "Python/bytecodes.c" + #line 2216 "Python/bytecodes.c" PyObject *name = GETITEM(FRAME_CO_NAMES, oparg); res = import_from(tstate, from, name); if (res == NULL) goto error; @@ -3174,14 +3174,14 @@ } TARGET(JUMP_FORWARD) { - #line 2223 "Python/bytecodes.c" + #line 2222 "Python/bytecodes.c" JUMPBY(oparg); #line 3180 "Python/generated_cases.c.h" DISPATCH(); } TARGET(JUMP_BACKWARD) { - #line 2227 "Python/bytecodes.c" + #line 2226 "Python/bytecodes.c" _Py_CODEUNIT *here = next_instr - 1; assert(oparg <= INSTR_OFFSET()); JUMPBY(1-oparg); @@ -3205,7 +3205,7 @@ } TARGET(ENTER_EXECUTOR) { - #line 2258 "Python/bytecodes.c" + #line 2257 "Python/bytecodes.c" PyCodeObject *code = _PyFrame_GetCode(frame); _PyExecutorObject *executor = (_PyExecutorObject *)code->co_executors->executors[oparg&255]; Py_INCREF(executor); @@ -3220,7 +3220,7 @@ TARGET(POP_JUMP_IF_FALSE) { PyObject *cond = stack_pointer[-1]; - #line 2270 "Python/bytecodes.c" + #line 2269 "Python/bytecodes.c" assert(PyBool_Check(cond)); JUMPBY(oparg * Py_IsFalse(cond)); #line 3227 "Python/generated_cases.c.h" @@ -3230,7 +3230,7 @@ TARGET(POP_JUMP_IF_TRUE) { PyObject *cond = stack_pointer[-1]; - #line 2275 "Python/bytecodes.c" + #line 2274 "Python/bytecodes.c" assert(PyBool_Check(cond)); JUMPBY(oparg * Py_IsTrue(cond)); #line 3237 "Python/generated_cases.c.h" @@ -3240,11 +3240,11 @@ TARGET(POP_JUMP_IF_NOT_NONE) { PyObject *value = stack_pointer[-1]; - #line 2280 "Python/bytecodes.c" + #line 2279 "Python/bytecodes.c" if (!Py_IsNone(value)) { #line 3246 "Python/generated_cases.c.h" Py_DECREF(value); - #line 2282 "Python/bytecodes.c" + #line 2281 "Python/bytecodes.c" JUMPBY(oparg); } #line 3251 "Python/generated_cases.c.h" @@ -3254,14 +3254,14 @@ TARGET(POP_JUMP_IF_NONE) { PyObject *value = stack_pointer[-1]; - #line 2287 "Python/bytecodes.c" + #line 2286 "Python/bytecodes.c" if (Py_IsNone(value)) { JUMPBY(oparg); } else { #line 3263 "Python/generated_cases.c.h" Py_DECREF(value); - #line 2292 "Python/bytecodes.c" + #line 2291 "Python/bytecodes.c" } #line 3267 "Python/generated_cases.c.h" STACK_SHRINK(1); @@ -3269,7 +3269,7 @@ } TARGET(JUMP_BACKWARD_NO_INTERRUPT) { - #line 2296 "Python/bytecodes.c" + #line 2295 "Python/bytecodes.c" /* This bytecode is used in the `yield from` or `await` loop. * If there is an interrupt, we want it handled in the innermost * generator or coroutine, so we deliberately do not check it here. @@ -3283,7 +3283,7 @@ TARGET(GET_LEN) { PyObject *obj = stack_pointer[-1]; PyObject *len_o; - #line 2305 "Python/bytecodes.c" + #line 2304 "Python/bytecodes.c" // PUSH(len(TOS)) Py_ssize_t len_i = PyObject_Length(obj); if (len_i < 0) goto error; @@ -3300,7 +3300,7 @@ PyObject *type = stack_pointer[-2]; PyObject *subject = stack_pointer[-3]; PyObject *attrs; - #line 2313 "Python/bytecodes.c" + #line 2312 "Python/bytecodes.c" // Pop TOS and TOS1. Set TOS to a tuple of attributes on success, or // None on failure. assert(PyTuple_CheckExact(names)); @@ -3309,7 +3309,7 @@ Py_DECREF(subject); Py_DECREF(type); Py_DECREF(names); - #line 2318 "Python/bytecodes.c" + #line 2317 "Python/bytecodes.c" if (attrs) { assert(PyTuple_CheckExact(attrs)); // Success! } @@ -3326,7 +3326,7 @@ TARGET(MATCH_MAPPING) { PyObject *subject = stack_pointer[-1]; PyObject *res; - #line 2328 "Python/bytecodes.c" + #line 2327 "Python/bytecodes.c" int match = Py_TYPE(subject)->tp_flags & Py_TPFLAGS_MAPPING; res = match ? Py_True : Py_False; #line 3333 "Python/generated_cases.c.h" @@ -3338,7 +3338,7 @@ TARGET(MATCH_SEQUENCE) { PyObject *subject = stack_pointer[-1]; PyObject *res; - #line 2333 "Python/bytecodes.c" + #line 2332 "Python/bytecodes.c" int match = Py_TYPE(subject)->tp_flags & Py_TPFLAGS_SEQUENCE; res = match ? Py_True : Py_False; #line 3345 "Python/generated_cases.c.h" @@ -3351,7 +3351,7 @@ PyObject *keys = stack_pointer[-1]; PyObject *subject = stack_pointer[-2]; PyObject *values_or_none; - #line 2338 "Python/bytecodes.c" + #line 2337 "Python/bytecodes.c" // On successful match, PUSH(values). Otherwise, PUSH(None). values_or_none = match_keys(tstate, subject, keys); if (values_or_none == NULL) goto error; @@ -3364,12 +3364,12 @@ TARGET(GET_ITER) { PyObject *iterable = stack_pointer[-1]; PyObject *iter; - #line 2344 "Python/bytecodes.c" + #line 2343 "Python/bytecodes.c" /* before: [obj]; after [getiter(obj)] */ iter = PyObject_GetIter(iterable); #line 3371 "Python/generated_cases.c.h" Py_DECREF(iterable); - #line 2347 "Python/bytecodes.c" + #line 2346 "Python/bytecodes.c" if (iter == NULL) goto pop_1_error; #line 3375 "Python/generated_cases.c.h" stack_pointer[-1] = iter; @@ -3379,7 +3379,7 @@ TARGET(GET_YIELD_FROM_ITER) { PyObject *iterable = stack_pointer[-1]; PyObject *iter; - #line 2351 "Python/bytecodes.c" + #line 2350 "Python/bytecodes.c" /* before: [obj]; after [getiter(obj)] */ if (PyCoro_CheckExact(iterable)) { /* `iterable` is a coroutine */ @@ -3404,7 +3404,7 @@ } #line 3406 "Python/generated_cases.c.h" Py_DECREF(iterable); - #line 2374 "Python/bytecodes.c" + #line 2373 "Python/bytecodes.c" } #line 3410 "Python/generated_cases.c.h" stack_pointer[-1] = iter; @@ -3416,7 +3416,7 @@ static_assert(INLINE_CACHE_ENTRIES_FOR_ITER == 1, "incorrect cache size"); PyObject *iter = stack_pointer[-1]; PyObject *next; - #line 2392 "Python/bytecodes.c" + #line 2391 "Python/bytecodes.c" #if ENABLE_SPECIALIZATION _PyForIterCache *cache = (_PyForIterCache *)next_instr; if (ADAPTIVE_COUNTER_IS_ZERO(cache->counter)) { @@ -3456,7 +3456,7 @@ } TARGET(INSTRUMENTED_FOR_ITER) { - #line 2426 "Python/bytecodes.c" + #line 2425 "Python/bytecodes.c" _Py_CODEUNIT *here = next_instr-1; _Py_CODEUNIT *target; PyObject *iter = TOP(); @@ -3489,7 +3489,7 @@ TARGET(FOR_ITER_LIST) { PyObject *iter = stack_pointer[-1]; PyObject *next; - #line 2454 "Python/bytecodes.c" + #line 2453 "Python/bytecodes.c" DEOPT_IF(Py_TYPE(iter) != &PyListIter_Type, FOR_ITER); _PyListIterObject *it = (_PyListIterObject *)iter; STAT_INC(FOR_ITER, hit); @@ -3520,7 +3520,7 @@ TARGET(FOR_ITER_TUPLE) { PyObject *iter = stack_pointer[-1]; PyObject *next; - #line 2477 "Python/bytecodes.c" + #line 2476 "Python/bytecodes.c" _PyTupleIterObject *it = (_PyTupleIterObject *)iter; DEOPT_IF(Py_TYPE(it) != &PyTupleIter_Type, FOR_ITER); STAT_INC(FOR_ITER, hit); @@ -3551,7 +3551,7 @@ TARGET(FOR_ITER_RANGE) { PyObject *iter = stack_pointer[-1]; PyObject *next; - #line 2500 "Python/bytecodes.c" + #line 2499 "Python/bytecodes.c" _PyRangeIterObject *r = (_PyRangeIterObject *)iter; DEOPT_IF(Py_TYPE(r) != &PyRangeIter_Type, FOR_ITER); STAT_INC(FOR_ITER, hit); @@ -3579,7 +3579,7 @@ TARGET(FOR_ITER_GEN) { PyObject *iter = stack_pointer[-1]; - #line 2521 "Python/bytecodes.c" + #line 2520 "Python/bytecodes.c" DEOPT_IF(tstate->interp->eval_frame, FOR_ITER); PyGenObject *gen = (PyGenObject *)iter; DEOPT_IF(Py_TYPE(gen) != &PyGen_Type, FOR_ITER); @@ -3602,7 +3602,7 @@ PyObject *mgr = stack_pointer[-1]; PyObject *exit; PyObject *res; - #line 2539 "Python/bytecodes.c" + #line 2538 "Python/bytecodes.c" PyObject *enter = _PyObject_LookupSpecial(mgr, &_Py_ID(__aenter__)); if (enter == NULL) { if (!_PyErr_Occurred(tstate)) { @@ -3627,7 +3627,7 @@ } #line 3629 "Python/generated_cases.c.h" Py_DECREF(mgr); - #line 2562 "Python/bytecodes.c" + #line 2561 "Python/bytecodes.c" res = _PyObject_CallNoArgs(enter); Py_DECREF(enter); if (res == NULL) { @@ -3645,7 +3645,7 @@ PyObject *mgr = stack_pointer[-1]; PyObject *exit; PyObject *res; - #line 2571 "Python/bytecodes.c" + #line 2570 "Python/bytecodes.c" /* pop the context manager, push its __exit__ and the * value returned from calling its __enter__ */ @@ -3673,7 +3673,7 @@ } #line 3675 "Python/generated_cases.c.h" Py_DECREF(mgr); - #line 2597 "Python/bytecodes.c" + #line 2596 "Python/bytecodes.c" res = _PyObject_CallNoArgs(enter); Py_DECREF(enter); if (res == NULL) { @@ -3692,7 +3692,7 @@ PyObject *lasti = stack_pointer[-3]; PyObject *exit_func = stack_pointer[-4]; PyObject *res; - #line 2606 "Python/bytecodes.c" + #line 2605 "Python/bytecodes.c" /* At the top of the stack are 4 values: - val: TOP = exc_info() - unused: SECOND = previous exception @@ -3722,7 +3722,7 @@ TARGET(PUSH_EXC_INFO) { PyObject *new_exc = stack_pointer[-1]; PyObject *prev_exc; - #line 2645 "Python/bytecodes.c" + #line 2644 "Python/bytecodes.c" _PyErr_StackItem *exc_info = tstate->exc_info; if (exc_info->exc_value != NULL) { prev_exc = exc_info->exc_value; @@ -3746,7 +3746,7 @@ uint32_t type_version = read_u32(&next_instr[1].cache); uint32_t keys_version = read_u32(&next_instr[3].cache); PyObject *descr = read_obj(&next_instr[5].cache); - #line 2657 "Python/bytecodes.c" + #line 2656 "Python/bytecodes.c" /* Cached method object */ PyTypeObject *self_cls = Py_TYPE(self); assert(type_version != 0); @@ -3777,7 +3777,7 @@ PyObject *res; uint32_t type_version = read_u32(&next_instr[1].cache); PyObject *descr = read_obj(&next_instr[5].cache); - #line 2676 "Python/bytecodes.c" + #line 2675 "Python/bytecodes.c" PyTypeObject *self_cls = Py_TYPE(self); DEOPT_IF(self_cls->tp_version_tag != type_version, LOAD_ATTR); assert(self_cls->tp_dictoffset == 0); @@ -3801,7 +3801,7 @@ PyObject *res; uint32_t type_version = read_u32(&next_instr[1].cache); PyObject *descr = read_obj(&next_instr[5].cache); - #line 2688 "Python/bytecodes.c" + #line 2687 "Python/bytecodes.c" PyTypeObject *self_cls = Py_TYPE(self); DEOPT_IF(self_cls->tp_version_tag != type_version, LOAD_ATTR); Py_ssize_t dictoffset = self_cls->tp_dictoffset; @@ -3824,7 +3824,7 @@ } TARGET(KW_NAMES) { - #line 2704 "Python/bytecodes.c" + #line 2703 "Python/bytecodes.c" assert(kwnames == NULL); assert(oparg < PyTuple_GET_SIZE(FRAME_CO_CONSTS)); kwnames = GETITEM(FRAME_CO_CONSTS, oparg); @@ -3833,7 +3833,7 @@ } TARGET(INSTRUMENTED_CALL) { - #line 2710 "Python/bytecodes.c" + #line 2709 "Python/bytecodes.c" int is_meth = PEEK(oparg+2) != NULL; int total_args = oparg + is_meth; PyObject *function = PEEK(total_args + 1); @@ -3856,7 +3856,7 @@ PyObject *callable = stack_pointer[-(1 + oparg)]; PyObject *method = stack_pointer[-(2 + oparg)]; PyObject *res; - #line 2756 "Python/bytecodes.c" + #line 2755 "Python/bytecodes.c" int is_meth = method != NULL; int total_args = oparg; if (is_meth) { @@ -3950,7 +3950,7 @@ TARGET(CALL_BOUND_METHOD_EXACT_ARGS) { PyObject *callable = stack_pointer[-(1 + oparg)]; PyObject *method = stack_pointer[-(2 + oparg)]; - #line 2844 "Python/bytecodes.c" + #line 2843 "Python/bytecodes.c" DEOPT_IF(method != NULL, CALL); DEOPT_IF(Py_TYPE(callable) != &PyMethod_Type, CALL); STAT_INC(CALL, hit); @@ -3969,7 +3969,7 @@ PyObject *callable = stack_pointer[-(1 + oparg)]; PyObject *method = stack_pointer[-(2 + oparg)]; uint32_t func_version = read_u32(&next_instr[1].cache); - #line 2856 "Python/bytecodes.c" + #line 2855 "Python/bytecodes.c" assert(kwnames == NULL); DEOPT_IF(tstate->interp->eval_frame, CALL); int is_meth = method != NULL; @@ -4003,7 +4003,7 @@ PyObject *callable = stack_pointer[-(1 + oparg)]; PyObject *method = stack_pointer[-(2 + oparg)]; uint32_t func_version = read_u32(&next_instr[1].cache); - #line 2884 "Python/bytecodes.c" + #line 2883 "Python/bytecodes.c" assert(kwnames == NULL); DEOPT_IF(tstate->interp->eval_frame, CALL); int is_meth = method != NULL; @@ -4047,7 +4047,7 @@ PyObject *callable = stack_pointer[-(1 + oparg)]; PyObject *null = stack_pointer[-(2 + oparg)]; PyObject *res; - #line 2922 "Python/bytecodes.c" + #line 2921 "Python/bytecodes.c" assert(kwnames == NULL); assert(oparg == 1); DEOPT_IF(null != NULL, CALL); @@ -4070,7 +4070,7 @@ PyObject *callable = stack_pointer[-(1 + oparg)]; PyObject *null = stack_pointer[-(2 + oparg)]; PyObject *res; - #line 2934 "Python/bytecodes.c" + #line 2933 "Python/bytecodes.c" assert(kwnames == NULL); assert(oparg == 1); DEOPT_IF(null != NULL, CALL); @@ -4095,7 +4095,7 @@ PyObject *callable = stack_pointer[-(1 + oparg)]; PyObject *null = stack_pointer[-(2 + oparg)]; PyObject *res; - #line 2948 "Python/bytecodes.c" + #line 2947 "Python/bytecodes.c" assert(kwnames == NULL); assert(oparg == 1); DEOPT_IF(null != NULL, CALL); @@ -4119,7 +4119,7 @@ PyObject **args = (stack_pointer - oparg); PyObject *callable = stack_pointer[-(1 + oparg)]; PyObject *null = stack_pointer[-(2 + oparg)]; - #line 2962 "Python/bytecodes.c" + #line 2961 "Python/bytecodes.c" /* This instruction does the following: * 1. Creates the object (by calling ``object.__new__``) * 2. Pushes a shim frame to the frame stack (to cleanup after ``__init__``) @@ -4174,7 +4174,7 @@ TARGET(EXIT_INIT_CHECK) { PyObject *should_be_none = stack_pointer[-1]; - #line 3014 "Python/bytecodes.c" + #line 3013 "Python/bytecodes.c" assert(STACK_LEVEL() == 2); if (should_be_none != Py_None) { PyErr_Format(PyExc_TypeError, @@ -4192,7 +4192,7 @@ PyObject *callable = stack_pointer[-(1 + oparg)]; PyObject *method = stack_pointer[-(2 + oparg)]; PyObject *res; - #line 3024 "Python/bytecodes.c" + #line 3023 "Python/bytecodes.c" int is_meth = method != NULL; int total_args = oparg; if (is_meth) { @@ -4228,7 +4228,7 @@ PyObject *callable = stack_pointer[-(1 + oparg)]; PyObject *method = stack_pointer[-(2 + oparg)]; PyObject *res; - #line 3049 "Python/bytecodes.c" + #line 3048 "Python/bytecodes.c" /* Builtin METH_O functions */ assert(kwnames == NULL); int is_meth = method != NULL; @@ -4270,7 +4270,7 @@ PyObject *callable = stack_pointer[-(1 + oparg)]; PyObject *method = stack_pointer[-(2 + oparg)]; PyObject *res; - #line 3080 "Python/bytecodes.c" + #line 3079 "Python/bytecodes.c" /* Builtin METH_FASTCALL functions, without keywords */ assert(kwnames == NULL); int is_meth = method != NULL; @@ -4316,7 +4316,7 @@ PyObject *callable = stack_pointer[-(1 + oparg)]; PyObject *method = stack_pointer[-(2 + oparg)]; PyObject *res; - #line 3115 "Python/bytecodes.c" + #line 3114 "Python/bytecodes.c" /* Builtin METH_FASTCALL | METH_KEYWORDS functions */ int is_meth = method != NULL; int total_args = oparg; @@ -4362,7 +4362,7 @@ PyObject *callable = stack_pointer[-(1 + oparg)]; PyObject *method = stack_pointer[-(2 + oparg)]; PyObject *res; - #line 3150 "Python/bytecodes.c" + #line 3149 "Python/bytecodes.c" assert(kwnames == NULL); /* len(o) */ int is_meth = method != NULL; @@ -4400,7 +4400,7 @@ PyObject *callable = stack_pointer[-(1 + oparg)]; PyObject *method = stack_pointer[-(2 + oparg)]; PyObject *res; - #line 3177 "Python/bytecodes.c" + #line 3176 "Python/bytecodes.c" assert(kwnames == NULL); /* isinstance(o, o2) */ int is_meth = method != NULL; @@ -4439,7 +4439,7 @@ PyObject **args = (stack_pointer - oparg); PyObject *self = stack_pointer[-(1 + oparg)]; PyObject *method = stack_pointer[-(2 + oparg)]; - #line 3207 "Python/bytecodes.c" + #line 3206 "Python/bytecodes.c" assert(kwnames == NULL); assert(oparg == 1); assert(method != NULL); @@ -4464,7 +4464,7 @@ PyObject **args = (stack_pointer - oparg); PyObject *method = stack_pointer[-(2 + oparg)]; PyObject *res; - #line 3227 "Python/bytecodes.c" + #line 3226 "Python/bytecodes.c" assert(kwnames == NULL); int is_meth = method != NULL; int total_args = oparg; @@ -4508,7 +4508,7 @@ PyObject **args = (stack_pointer - oparg); PyObject *method = stack_pointer[-(2 + oparg)]; PyObject *res; - #line 3261 "Python/bytecodes.c" + #line 3260 "Python/bytecodes.c" int is_meth = method != NULL; int total_args = oparg; if (is_meth) { @@ -4550,7 +4550,7 @@ PyObject **args = (stack_pointer - oparg); PyObject *method = stack_pointer[-(2 + oparg)]; PyObject *res; - #line 3293 "Python/bytecodes.c" + #line 3292 "Python/bytecodes.c" assert(kwnames == NULL); assert(oparg == 0 || oparg == 1); int is_meth = method != NULL; @@ -4592,7 +4592,7 @@ PyObject **args = (stack_pointer - oparg); PyObject *method = stack_pointer[-(2 + oparg)]; PyObject *res; - #line 3325 "Python/bytecodes.c" + #line 3324 "Python/bytecodes.c" assert(kwnames == NULL); int is_meth = method != NULL; int total_args = oparg; @@ -4630,7 +4630,7 @@ } TARGET(INSTRUMENTED_CALL_FUNCTION_EX) { - #line 3356 "Python/bytecodes.c" + #line 3355 "Python/bytecodes.c" GO_TO_INSTRUCTION(CALL_FUNCTION_EX); #line 4636 "Python/generated_cases.c.h" } @@ -4641,7 +4641,7 @@ PyObject *callargs = stack_pointer[-(1 + ((oparg & 1) ? 1 : 0))]; PyObject *func = stack_pointer[-(2 + ((oparg & 1) ? 1 : 0))]; PyObject *result; - #line 3360 "Python/bytecodes.c" + #line 3359 "Python/bytecodes.c" // DICT_MERGE is called before this opcode if there are kwargs. // It converts all dict subtypes in kwargs into regular dicts. assert(kwargs == NULL || PyDict_CheckExact(kwargs)); @@ -4707,7 +4707,7 @@ Py_DECREF(func); Py_DECREF(callargs); Py_XDECREF(kwargs); - #line 3422 "Python/bytecodes.c" + #line 3421 "Python/bytecodes.c" assert(PEEK(3 + (oparg & 1)) == NULL); if (result == NULL) { STACK_SHRINK(((oparg & 1) ? 1 : 0)); goto pop_3_error; } #line 4714 "Python/generated_cases.c.h" @@ -4721,7 +4721,7 @@ TARGET(MAKE_FUNCTION) { PyObject *codeobj = stack_pointer[-1]; PyObject *func; - #line 3428 "Python/bytecodes.c" + #line 3427 "Python/bytecodes.c" PyFunctionObject *func_obj = (PyFunctionObject *) PyFunction_New(codeobj, GLOBALS()); @@ -4741,7 +4741,7 @@ TARGET(SET_FUNCTION_ATTRIBUTE) { PyObject *func = stack_pointer[-1]; PyObject *attr = stack_pointer[-2]; - #line 3442 "Python/bytecodes.c" + #line 3441 "Python/bytecodes.c" assert(PyFunction_Check(func)); PyFunctionObject *func_obj = (PyFunctionObject *)func; switch(oparg) { @@ -4773,7 +4773,7 @@ } TARGET(RETURN_GENERATOR) { - #line 3469 "Python/bytecodes.c" + #line 3468 "Python/bytecodes.c" assert(PyFunction_Check(frame->f_funcobj)); PyFunctionObject *func = (PyFunctionObject *)frame->f_funcobj; PyGenObject *gen = (PyGenObject *)_Py_MakeCoro(func); @@ -4802,13 +4802,13 @@ PyObject *stop = stack_pointer[-(1 + ((oparg == 3) ? 1 : 0))]; PyObject *start = stack_pointer[-(2 + ((oparg == 3) ? 1 : 0))]; PyObject *slice; - #line 3492 "Python/bytecodes.c" + #line 3491 "Python/bytecodes.c" slice = PySlice_New(start, stop, step); #line 4808 "Python/generated_cases.c.h" Py_DECREF(start); Py_DECREF(stop); Py_XDECREF(step); - #line 3494 "Python/bytecodes.c" + #line 3493 "Python/bytecodes.c" if (slice == NULL) { STACK_SHRINK(((oparg == 3) ? 1 : 0)); goto pop_2_error; } #line 4814 "Python/generated_cases.c.h" STACK_SHRINK(((oparg == 3) ? 1 : 0)); @@ -4820,7 +4820,7 @@ TARGET(CONVERT_VALUE) { PyObject *value = stack_pointer[-1]; PyObject *result; - #line 3498 "Python/bytecodes.c" + #line 3497 "Python/bytecodes.c" convertion_func_ptr conv_fn; assert(oparg >= FVC_STR && oparg <= FVC_ASCII); conv_fn = CONVERSION_FUNCTIONS[oparg]; @@ -4835,7 +4835,7 @@ TARGET(FORMAT_SIMPLE) { PyObject *value = stack_pointer[-1]; PyObject *res; - #line 3507 "Python/bytecodes.c" + #line 3506 "Python/bytecodes.c" /* If value is a unicode object, then we know the result * of format(value) is value itself. */ if (!PyUnicode_CheckExact(value)) { @@ -4855,7 +4855,7 @@ PyObject *fmt_spec = stack_pointer[-1]; PyObject *value = stack_pointer[-2]; PyObject *res; - #line 3520 "Python/bytecodes.c" + #line 3519 "Python/bytecodes.c" res = PyObject_Format(value, fmt_spec); Py_DECREF(value); Py_DECREF(fmt_spec); @@ -4869,7 +4869,7 @@ TARGET(COPY) { PyObject *bottom = stack_pointer[-(1 + (oparg-1))]; PyObject *top; - #line 3527 "Python/bytecodes.c" + #line 3526 "Python/bytecodes.c" assert(oparg > 0); top = Py_NewRef(bottom); #line 4876 "Python/generated_cases.c.h" @@ -4884,7 +4884,7 @@ PyObject *rhs = stack_pointer[-1]; PyObject *lhs = stack_pointer[-2]; PyObject *res; - #line 3532 "Python/bytecodes.c" + #line 3531 "Python/bytecodes.c" #if ENABLE_SPECIALIZATION _PyBinaryOpCache *cache = (_PyBinaryOpCache *)next_instr; if (ADAPTIVE_COUNTER_IS_ZERO(cache->counter)) { @@ -4902,7 +4902,7 @@ #line 4903 "Python/generated_cases.c.h" Py_DECREF(lhs); Py_DECREF(rhs); - #line 3547 "Python/bytecodes.c" + #line 3546 "Python/bytecodes.c" if (res == NULL) goto pop_2_error; #line 4908 "Python/generated_cases.c.h" STACK_SHRINK(1); @@ -4914,7 +4914,7 @@ TARGET(SWAP) { PyObject *top = stack_pointer[-1]; PyObject *bottom = stack_pointer[-(2 + (oparg-2))]; - #line 3552 "Python/bytecodes.c" + #line 3551 "Python/bytecodes.c" assert(oparg >= 2); #line 4920 "Python/generated_cases.c.h" stack_pointer[-1] = bottom; @@ -4923,7 +4923,7 @@ } TARGET(INSTRUMENTED_INSTRUCTION) { - #line 3556 "Python/bytecodes.c" + #line 3555 "Python/bytecodes.c" int next_opcode = _Py_call_instrumentation_instruction( tstate, frame, next_instr-1); if (next_opcode < 0) goto error; @@ -4939,14 +4939,14 @@ } TARGET(INSTRUMENTED_JUMP_FORWARD) { - #line 3570 "Python/bytecodes.c" + #line 3569 "Python/bytecodes.c" INSTRUMENTED_JUMP(next_instr-1, next_instr+oparg, PY_MONITORING_EVENT_JUMP); #line 4945 "Python/generated_cases.c.h" DISPATCH(); } TARGET(INSTRUMENTED_JUMP_BACKWARD) { - #line 3574 "Python/bytecodes.c" + #line 3573 "Python/bytecodes.c" INSTRUMENTED_JUMP(next_instr-1, next_instr+1-oparg, PY_MONITORING_EVENT_JUMP); #line 4952 "Python/generated_cases.c.h" CHECK_EVAL_BREAKER(); @@ -4954,7 +4954,7 @@ } TARGET(INSTRUMENTED_POP_JUMP_IF_TRUE) { - #line 3579 "Python/bytecodes.c" + #line 3578 "Python/bytecodes.c" PyObject *cond = POP(); assert(PyBool_Check(cond)); _Py_CODEUNIT *here = next_instr - 1; @@ -4965,7 +4965,7 @@ } TARGET(INSTRUMENTED_POP_JUMP_IF_FALSE) { - #line 3587 "Python/bytecodes.c" + #line 3586 "Python/bytecodes.c" PyObject *cond = POP(); assert(PyBool_Check(cond)); _Py_CODEUNIT *here = next_instr - 1; @@ -4976,7 +4976,7 @@ } TARGET(INSTRUMENTED_POP_JUMP_IF_NONE) { - #line 3595 "Python/bytecodes.c" + #line 3594 "Python/bytecodes.c" PyObject *value = POP(); _Py_CODEUNIT *here = next_instr-1; int offset; @@ -4993,7 +4993,7 @@ } TARGET(INSTRUMENTED_POP_JUMP_IF_NOT_NONE) { - #line 3609 "Python/bytecodes.c" + #line 3608 "Python/bytecodes.c" PyObject *value = POP(); _Py_CODEUNIT *here = next_instr-1; int offset; @@ -5010,7 +5010,7 @@ } TARGET(EXTENDED_ARG) { - #line 3623 "Python/bytecodes.c" + #line 3622 "Python/bytecodes.c" assert(oparg); opcode = next_instr->op.code; oparg = oparg << 8 | next_instr->op.arg; @@ -5020,14 +5020,14 @@ } TARGET(CACHE) { - #line 3631 "Python/bytecodes.c" + #line 3630 "Python/bytecodes.c" assert(0 && "Executing a cache."); Py_UNREACHABLE(); #line 5027 "Python/generated_cases.c.h" } TARGET(RESERVED) { - #line 3636 "Python/bytecodes.c" + #line 3635 "Python/bytecodes.c" assert(0 && "Executing RESERVED instruction."); Py_UNREACHABLE(); #line 5034 "Python/generated_cases.c.h" diff --git a/Python/pythonrun.c b/Python/pythonrun.c index 26e474a3efe..60bf66c8a6b 100644 --- a/Python/pythonrun.c +++ b/Python/pythonrun.c @@ -834,11 +834,8 @@ _PyErr_PrintEx(PyThreadState *tstate, int set_sys_last_vars) _PyErr_WriteUnraisableMsg("in audit hook", NULL); } if (hook) { - PyObject* stack[3]; - stack[0] = typ; - stack[1] = exc; - stack[2] = tb; - PyObject *result = _PyObject_FastCall(hook, stack, 3); + PyObject* args[3] = {typ, exc, tb}; + PyObject *result = PyObject_Vectorcall(hook, args, 3, NULL); if (result == NULL) { handle_system_exit(); diff --git a/Python/sysmodule.c b/Python/sysmodule.c index 0cd8974d197..723fcdb174a 100644 --- a/Python/sysmodule.c +++ b/Python/sysmodule.c @@ -268,7 +268,7 @@ sys_audit_tstate(PyThreadState *ts, const char *event, PyThreadState_LeaveTracing(ts); } PyObject* args[2] = {eventName, eventArgs}; - o = _PyObject_FastCallTstate(ts, hook, args, 2); + o = _PyObject_VectorcallTstate(ts, hook, args, 2, NULL); if (canTrace) { PyThreadState_EnterTracing(ts); }