mirror of
https://github.com/python/cpython.git
synced 2025-11-02 03:01:58 +00:00
bpo-40792: Make the result of PyNumber_Index() always having exact type int. (GH-20443)
Previously, the result could have been an instance of a subclass of int. Also revert bpo-26202 and make attributes start, stop and step of the range object having exact type int. Add private function _PyNumber_Index() which preserves the old behavior of PyNumber_Index() for performance to use it in the conversion functions like PyLong_AsLong().
This commit is contained in:
parent
eaca2aa117
commit
5f4b229df7
51 changed files with 187 additions and 187 deletions
|
|
@ -531,7 +531,7 @@ _Py_Uid_Converter(PyObject *obj, void *p)
|
|||
long result;
|
||||
unsigned long uresult;
|
||||
|
||||
index = PyNumber_Index(obj);
|
||||
index = _PyNumber_Index(obj);
|
||||
if (index == NULL) {
|
||||
PyErr_Format(PyExc_TypeError,
|
||||
"uid should be integer, not %.200s",
|
||||
|
|
@ -637,7 +637,7 @@ _Py_Gid_Converter(PyObject *obj, void *p)
|
|||
long result;
|
||||
unsigned long uresult;
|
||||
|
||||
index = PyNumber_Index(obj);
|
||||
index = _PyNumber_Index(obj);
|
||||
if (index == NULL) {
|
||||
PyErr_Format(PyExc_TypeError,
|
||||
"gid should be integer, not %.200s",
|
||||
|
|
@ -771,7 +771,7 @@ _fd_converter(PyObject *o, int *p)
|
|||
int overflow;
|
||||
long long_value;
|
||||
|
||||
PyObject *index = PyNumber_Index(o);
|
||||
PyObject *index = _PyNumber_Index(o);
|
||||
if (index == NULL) {
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue