| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| Expand Up | @@ -2972,36 +2972,39 @@ dummy_func( | |
| CHECK_EVAL_BREAKER(); | ||
| } | ||
|
|
||
| // error: MAKE_FUNCTION has irregular stack effect | ||
| inst(MAKE_FUNCTION) { | ||
| PyObject *codeobj = POP(); | ||
| PyFunctionObject *func = (PyFunctionObject *) | ||
| inst(MAKE_FUNCTION, (defaults if (oparg & 0x01), | ||
| kwdefaults if (oparg & 0x02), | ||
| annotations if (oparg & 0x04), | ||
| closure if (oparg & 0x08), | ||
| codeobj -- func)) { | ||
|
|
||
| PyFunctionObject *func_obj = (PyFunctionObject *) | ||
| PyFunction_New(codeobj, GLOBALS()); | ||
|
|
||
| Py_DECREF(codeobj); | ||
| if (func == NULL) { | ||
| if (func_obj == NULL) { | ||
| goto error; | ||
| } | ||
|
|
||
| if (oparg & 0x08) { | ||
| assert(PyTuple_CheckExact(TOP())); | ||
| func->func_closure = POP(); | ||
| assert(PyTuple_CheckExact(closure)); | ||
| func_obj->func_closure = closure; | ||
| } | ||
| if (oparg & 0x04) { | ||
| assert(PyTuple_CheckExact(TOP())); | ||
| func->func_annotations = POP(); | ||
| assert(PyTuple_CheckExact(annotations)); | ||
| func_obj->func_annotations = annotations; | ||
| } | ||
| if (oparg & 0x02) { | ||
| assert(PyDict_CheckExact(TOP())); | ||
| func->func_kwdefaults = POP(); | ||
| assert(PyDict_CheckExact(kwdefaults)); | ||
| func_obj->func_kwdefaults = kwdefaults; | ||
| } | ||
| if (oparg & 0x01) { | ||
| assert(PyTuple_CheckExact(TOP())); | ||
| func->func_defaults = POP(); | ||
| assert(PyTuple_CheckExact(defaults)); | ||
| func_obj->func_defaults = defaults; | ||
| } | ||
|
|
||
| func->func_version = ((PyCodeObject *)codeobj)->co_version; | ||
| PUSH((PyObject *)func); | ||
| func_obj->func_version = ((PyCodeObject *)codeobj)->co_version; | ||
| func = (PyObject *)func_obj; | ||
| } | ||
|
|
||
| inst(RETURN_GENERATOR, (--)) { | ||
| Expand All | @@ -3027,22 +3030,12 @@ dummy_func( | |
| goto resume_frame; | ||
| } | ||
|
|
||
| // error: BUILD_SLICE has irregular stack effect | ||
| inst(BUILD_SLICE) { | ||
| PyObject *start, *stop, *step, *slice; | ||
| if (oparg == 3) | ||
| step = POP(); | ||
| else | ||
| step = NULL; | ||
| stop = POP(); | ||
| start = TOP(); | ||
| inst(BUILD_SLICE, (start, stop, step if (oparg == 3) -- slice)) { | ||
| slice = PySlice_New(start, stop, step); | ||
| Py_DECREF(start); | ||
| Py_DECREF(stop); | ||
| Py_XDECREF(step); | ||
|
Comment thread
Comment on lines
3035
to
3037
Copy link
Copy Markdown
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Choose a reason Spam Abuse Off Topic Outdated Duplicate Resolved Low QualityOh, we should augment DECREF_INPUTS() to use XDECREF for conditional inputs.
Sorry, something went wrong.
All reactions
|
||
| SET_TOP(slice); | ||
| if (slice == NULL) | ||
| goto error; | ||
| ERROR_IF(slice == NULL, error); | ||
| } | ||
|
|
||
| // error: FORMAT_VALUE has irregular stack effect | ||
| Expand Down | ||
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
| Back | FazBrowse Home | New Git URL |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Choose a reason Spam Abuse Off Topic Outdated Duplicate Resolved Low QualityToo bad we can't write func: PyFunctionObject * yet -- I've gotta add that to the grammar, it would add the casts and save the ugly extra func_obj variable.
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.