mirror of https://github.com/python/cpython
gh-111133: Remove unnecessary PyFrozenSet_Check() calls in const folding (GH-111137)
frozenset does not support multiplication.
This commit is contained in:
parent
124259f9b3
commit
7162c3a1e8
|
@ -142,15 +142,6 @@ check_complexity(PyObject *obj, Py_ssize_t limit)
|
||||||
}
|
}
|
||||||
return limit;
|
return limit;
|
||||||
}
|
}
|
||||||
else if (PyFrozenSet_Check(obj)) {
|
|
||||||
Py_ssize_t i = 0;
|
|
||||||
PyObject *item;
|
|
||||||
Py_hash_t hash;
|
|
||||||
limit -= PySet_GET_SIZE(obj);
|
|
||||||
while (limit >= 0 && _PySet_NextEntry(obj, &i, &item, &hash)) {
|
|
||||||
limit = check_complexity(item, limit);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return limit;
|
return limit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -174,9 +165,8 @@ safe_multiply(PyObject *v, PyObject *w)
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (PyLong_Check(v) && (PyTuple_Check(w) || PyFrozenSet_Check(w))) {
|
else if (PyLong_Check(v) && PyTuple_Check(w)) {
|
||||||
Py_ssize_t size = PyTuple_Check(w) ? PyTuple_GET_SIZE(w) :
|
Py_ssize_t size = PyTuple_GET_SIZE(w);
|
||||||
PySet_GET_SIZE(w);
|
|
||||||
if (size) {
|
if (size) {
|
||||||
long n = PyLong_AsLong(v);
|
long n = PyLong_AsLong(v);
|
||||||
if (n < 0 || n > MAX_COLLECTION_SIZE / size) {
|
if (n < 0 || n > MAX_COLLECTION_SIZE / size) {
|
||||||
|
@ -198,8 +188,7 @@ safe_multiply(PyObject *v, PyObject *w)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (PyLong_Check(w) &&
|
else if (PyLong_Check(w) &&
|
||||||
(PyTuple_Check(v) || PyFrozenSet_Check(v) ||
|
(PyTuple_Check(v) || PyUnicode_Check(v) || PyBytes_Check(v)))
|
||||||
PyUnicode_Check(v) || PyBytes_Check(v)))
|
|
||||||
{
|
{
|
||||||
return safe_multiply(w, v);
|
return safe_multiply(w, v);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue