bpo-47012: speed up iteration of bytes and bytearray (GH-31867)

This commit is contained in:
Kumar Aditya 2022-03-23 14:00:05 +05:30 committed by GitHub
parent 894d0ea5af
commit bd1cf6ecee
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 13 additions and 9 deletions

View file

@ -6,6 +6,7 @@
#include "pycore_bytes_methods.h"
#include "pycore_object.h" // _PyObject_GC_UNTRACK()
#include "pycore_strhex.h" // _Py_strhex_with_sep()
#include "pycore_long.h" // _PyLong_FromUnsignedChar()
#include "bytesobject.h"
/*[clinic input]
@ -2428,7 +2429,6 @@ static PyObject *
bytearrayiter_next(bytesiterobject *it)
{
PyByteArrayObject *seq;
PyObject *item;
assert(it != NULL);
seq = it->it_seq;
@ -2437,11 +2437,8 @@ bytearrayiter_next(bytesiterobject *it)
assert(PyByteArray_Check(seq));
if (it->it_index < PyByteArray_GET_SIZE(seq)) {
item = PyLong_FromLong(
(unsigned char)PyByteArray_AS_STRING(seq)[it->it_index]);
if (item != NULL)
++it->it_index;
return item;
return _PyLong_FromUnsignedChar(
(unsigned char)PyByteArray_AS_STRING(seq)[it->it_index++]);
}
it->it_seq = NULL;