diff options
author | Victor Stinner <vstinner@python.org> | 2022-11-30 16:22:52 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-11-30 16:22:52 (GMT) |
commit | 85dd6cb6df996b1197266d1a50ecc9187a91e481 (patch) | |
tree | 774e93130f5e1b81dcd7a94982c189c718e84b91 /Objects/bytearrayobject.c | |
parent | 18a6967544795cdcce45b45700b7a9ed3994b8fb (diff) | |
download | cpython-85dd6cb6df996b1197266d1a50ecc9187a91e481.zip cpython-85dd6cb6df996b1197266d1a50ecc9187a91e481.tar.gz cpython-85dd6cb6df996b1197266d1a50ecc9187a91e481.tar.bz2 |
gh-99845: Use size_t type in __sizeof__() methods (#99846)
The implementation of __sizeof__() methods using _PyObject_SIZE() now
use an unsigned type (size_t) to compute the size, rather than a signed
type (Py_ssize_t).
Cast explicitly signed (Py_ssize_t) values to unsigned type
(Py_ssize_t).
Diffstat (limited to 'Objects/bytearrayobject.c')
-rw-r--r-- | Objects/bytearrayobject.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/Objects/bytearrayobject.c b/Objects/bytearrayobject.c index 0ba6fb5..f24690a 100644 --- a/Objects/bytearrayobject.c +++ b/Objects/bytearrayobject.c @@ -2151,10 +2151,9 @@ static PyObject * bytearray_sizeof_impl(PyByteArrayObject *self) /*[clinic end generated code: output=738abdd17951c427 input=e27320fd98a4bc5a]*/ { - Py_ssize_t res; - - res = _PyObject_SIZE(Py_TYPE(self)) + self->ob_alloc * sizeof(char); - return PyLong_FromSsize_t(res); + size_t res = _PyObject_SIZE(Py_TYPE(self)); + res += (size_t)self->ob_alloc * sizeof(char); + return PyLong_FromSize_t(res); } static PySequenceMethods bytearray_as_sequence = { |