Commit fbd15235 authored by Serhiy Storchaka's avatar Serhiy Storchaka

Issue #27352: Correct the validation of the ImportFrom AST node and simplify

the implementation of the IMPORT_NAME opcode.
parent 44a98b6b
......@@ -475,8 +475,8 @@ validate_stmt(stmt_ty stmt)
case Import_kind:
return validate_nonempty_seq(stmt->v.Import.names, "names", "Import");
case ImportFrom_kind:
if (stmt->v.ImportFrom.level < -1) {
PyErr_SetString(PyExc_ValueError, "ImportFrom level less than -1");
if (stmt->v.ImportFrom.level < 0) {
PyErr_SetString(PyExc_ValueError, "Negative ImportFrom level");
return 0;
}
return validate_nonempty_seq(stmt->v.ImportFrom.names, "names", "ImportFrom");
......
......@@ -2820,7 +2820,6 @@ PyEval_EvalFrameEx(PyFrameObject *f, int throwflag)
Py_INCREF(func);
from = POP();
level = TOP();
if (PyLong_AsLong(level) != -1 || PyErr_Occurred())
args = PyTuple_Pack(5,
name,
f->f_globals,
......@@ -2828,13 +2827,6 @@ PyEval_EvalFrameEx(PyFrameObject *f, int throwflag)
Py_None : f->f_locals,
from,
level);
else
args = PyTuple_Pack(4,
name,
f->f_globals,
f->f_locals == NULL ?
Py_None : f->f_locals,
from);
Py_DECREF(level);
Py_DECREF(from);
if (args == NULL) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment