mirror of
https://github.com/python/cpython.git
synced 2025-07-24 03:35:53 +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
|
@ -2,6 +2,7 @@
|
|||
|
||||
#define PY_SSIZE_T_CLEAN
|
||||
#include "Python.h"
|
||||
#include "pycore_abstract.h" // _PyIndex_Check()
|
||||
#include "pycore_bytes_methods.h"
|
||||
#include "pycore_object.h"
|
||||
#include "pycore_pymem.h"
|
||||
|
@ -391,7 +392,7 @@ bytearray_getitem(PyByteArrayObject *self, Py_ssize_t i)
|
|||
static PyObject *
|
||||
bytearray_subscript(PyByteArrayObject *self, PyObject *index)
|
||||
{
|
||||
if (PyIndex_Check(index)) {
|
||||
if (_PyIndex_Check(index)) {
|
||||
Py_ssize_t i = PyNumber_AsSsize_t(index, PyExc_IndexError);
|
||||
|
||||
if (i == -1 && PyErr_Occurred())
|
||||
|
@ -610,7 +611,7 @@ bytearray_ass_subscript(PyByteArrayObject *self, PyObject *index, PyObject *valu
|
|||
char *buf, *bytes;
|
||||
buf = PyByteArray_AS_STRING(self);
|
||||
|
||||
if (PyIndex_Check(index)) {
|
||||
if (_PyIndex_Check(index)) {
|
||||
Py_ssize_t i = PyNumber_AsSsize_t(index, PyExc_IndexError);
|
||||
|
||||
if (i == -1 && PyErr_Occurred())
|
||||
|
@ -809,7 +810,7 @@ bytearray_init(PyByteArrayObject *self, PyObject *args, PyObject *kwds)
|
|||
}
|
||||
|
||||
/* Is it an int? */
|
||||
if (PyIndex_Check(arg)) {
|
||||
if (_PyIndex_Check(arg)) {
|
||||
count = PyNumber_AsSsize_t(arg, PyExc_OverflowError);
|
||||
if (count == -1 && PyErr_Occurred()) {
|
||||
if (!PyErr_ExceptionMatches(PyExc_TypeError))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue