diff options
Diffstat (limited to 'Objects/bytearrayobject.c')
-rw-r--r-- | Objects/bytearrayobject.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/Objects/bytearrayobject.c b/Objects/bytearrayobject.c index d4d0233..9812afd 100644 --- a/Objects/bytearrayobject.c +++ b/Objects/bytearrayobject.c @@ -332,6 +332,7 @@ bytearray_repeat(PyByteArrayObject *self, Py_ssize_t count) PyByteArrayObject *result; Py_ssize_t mysize; Py_ssize_t size; + const char *buf; if (count < 0) count = 0; @@ -340,13 +341,14 @@ bytearray_repeat(PyByteArrayObject *self, Py_ssize_t count) return PyErr_NoMemory(); size = mysize * count; result = (PyByteArrayObject *)PyByteArray_FromStringAndSize(NULL, size); + buf = PyByteArray_AS_STRING(self); if (result != NULL && size != 0) { if (mysize == 1) - memset(result->ob_bytes, self->ob_bytes[0], size); + memset(result->ob_bytes, buf[0], size); else { Py_ssize_t i; for (i = 0; i < count; i++) - memcpy(result->ob_bytes + i*mysize, self->ob_bytes, mysize); + memcpy(result->ob_bytes + i*mysize, buf, mysize); } } return (PyObject *)result; |