mirror of
https://github.com/python/cpython.git
synced 2025-07-24 11:44:31 +00:00
bpo-40170: Add _PyIndex_Check() internal function (GH-19426)
Add _PyIndex_Check() function to the internal C API: fast inlined verson of PyIndex_Check(). Add Include/internal/pycore_abstract.h header file. Replace PyIndex_Check() with _PyIndex_Check() in C files of Objects and Python subdirectories.
This commit is contained in:
parent
45ec5b99ae
commit
a15e260b70
17 changed files with 72 additions and 30 deletions
|
@ -10,6 +10,7 @@
|
|||
#define PY_LOCAL_AGGRESSIVE
|
||||
|
||||
#include "Python.h"
|
||||
#include "pycore_abstract.h" // _PyIndex_Check()
|
||||
#include "pycore_call.h"
|
||||
#include "pycore_ceval.h"
|
||||
#include "pycore_code.h"
|
||||
|
@ -5089,7 +5090,7 @@ _PyEval_SliceIndex(PyObject *v, Py_ssize_t *pi)
|
|||
PyThreadState *tstate = _PyThreadState_GET();
|
||||
if (v != Py_None) {
|
||||
Py_ssize_t x;
|
||||
if (PyIndex_Check(v)) {
|
||||
if (_PyIndex_Check(v)) {
|
||||
x = PyNumber_AsSsize_t(v, NULL);
|
||||
if (x == -1 && _PyErr_Occurred(tstate))
|
||||
return 0;
|
||||
|
@ -5110,7 +5111,7 @@ _PyEval_SliceIndexNotNone(PyObject *v, Py_ssize_t *pi)
|
|||
{
|
||||
PyThreadState *tstate = _PyThreadState_GET();
|
||||
Py_ssize_t x;
|
||||
if (PyIndex_Check(v)) {
|
||||
if (_PyIndex_Check(v)) {
|
||||
x = PyNumber_AsSsize_t(v, NULL);
|
||||
if (x == -1 && _PyErr_Occurred(tstate))
|
||||
return 0;
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
/* Module support implementation */
|
||||
|
||||
#include "Python.h"
|
||||
#include "pycore_abstract.h" // _PyIndex_Check()
|
||||
|
||||
#define FLAG_SIZE_T 1
|
||||
typedef double va_double;
|
||||
|
@ -20,7 +21,7 @@ _Py_convert_optional_to_ssize_t(PyObject *obj, void *result)
|
|||
if (obj == Py_None) {
|
||||
return 1;
|
||||
}
|
||||
else if (PyIndex_Check(obj)) {
|
||||
else if (_PyIndex_Check(obj)) {
|
||||
limit = PyNumber_AsSsize_t(obj, PyExc_OverflowError);
|
||||
if (limit == -1 && PyErr_Occurred()) {
|
||||
return 0;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue