[Python-checkins] bpo-47116: use _PyLong_FromUnsignedChar instead of PyLong_FromLong (GH-32110)

sweeneyde webhook-mailer at python.org
Sat Mar 26 15:47:47 EDT 2022


https://github.com/python/cpython/commit/c23ddf5ec229b7302437a1cf32d366df5cc5b837
commit: c23ddf5ec229b7302437a1cf32d366df5cc5b837
branch: main
author: Pieter Eendebak <pieter.eendebak at gmail.com>
committer: sweeneyde <36520290+sweeneyde at users.noreply.github.com>
date: 2022-03-26T15:47:38-04:00
summary:

bpo-47116: use _PyLong_FromUnsignedChar instead of PyLong_FromLong (GH-32110)

files:
M Objects/bytearrayobject.c
M Objects/bytesobject.c

diff --git a/Objects/bytearrayobject.c b/Objects/bytearrayobject.c
index cbe673acd0a3a9..74267cffcc9a3c 100644
--- a/Objects/bytearrayobject.c
+++ b/Objects/bytearrayobject.c
@@ -396,7 +396,7 @@ bytearray_getitem(PyByteArrayObject *self, Py_ssize_t i)
         PyErr_SetString(PyExc_IndexError, "bytearray index out of range");
         return NULL;
     }
-    return PyLong_FromLong((unsigned char)(PyByteArray_AS_STRING(self)[i]));
+    return _PyLong_FromUnsignedChar((unsigned char)(self->ob_start[i]));
 }
 
 static PyObject *
@@ -415,7 +415,7 @@ bytearray_subscript(PyByteArrayObject *self, PyObject *index)
             PyErr_SetString(PyExc_IndexError, "bytearray index out of range");
             return NULL;
         }
-        return PyLong_FromLong((unsigned char)(PyByteArray_AS_STRING(self)[i]));
+        return _PyLong_FromUnsignedChar((unsigned char)(self->ob_start[i]));
     }
     else if (PySlice_Check(index)) {
         Py_ssize_t start, stop, step, slicelength, i;
@@ -1841,7 +1841,7 @@ bytearray_pop_impl(PyByteArrayObject *self, Py_ssize_t index)
     if (PyByteArray_Resize((PyObject *)self, n - 1) < 0)
         return NULL;
 
-    return PyLong_FromLong((unsigned char)value);
+    return _PyLong_FromUnsignedChar((unsigned char)value);
 }
 
 /*[clinic input]
diff --git a/Objects/bytesobject.c b/Objects/bytesobject.c
index 003953244a885a..56c941a44bfd54 100644
--- a/Objects/bytesobject.c
+++ b/Objects/bytesobject.c
@@ -1487,7 +1487,7 @@ bytes_item(PyBytesObject *a, Py_ssize_t i)
         PyErr_SetString(PyExc_IndexError, "index out of range");
         return NULL;
     }
-    return PyLong_FromLong((unsigned char)a->ob_sval[i]);
+    return _PyLong_FromUnsignedChar((unsigned char)a->ob_sval[i]);
 }
 
 static int
@@ -1595,7 +1595,7 @@ bytes_subscript(PyBytesObject* self, PyObject* item)
                             "index out of range");
             return NULL;
         }
-        return PyLong_FromLong((unsigned char)self->ob_sval[i]);
+        return _PyLong_FromUnsignedChar((unsigned char)self->ob_sval[i]);
     }
     else if (PySlice_Check(item)) {
         Py_ssize_t start, stop, step, slicelength, i;



More information about the Python-checkins mailing list