Optimize PyBytes_FromObject(): only overallocate when size=0 to not get the

empty string singleton
This commit is contained in:
Victor Stinner 2014-08-17 21:12:18 +02:00
parent cfcde8ca40
commit 88d146b7b9
1 changed files with 3 additions and 1 deletions

View File

@ -3174,10 +3174,12 @@ PyBytes_FromObject(PyObject *x)
returning a shared empty bytes string. This required because we
want to call _PyBytes_Resize() the returned object, which we can
only do on bytes objects with refcount == 1. */
size += 1;
if (size == 0)
size = 1;
new = PyBytes_FromStringAndSize(NULL, size);
if (new == NULL)
return NULL;
assert(Py_REFCNT(new) == 1);
/* Get the iterator */
it = PyObject_GetIter(x);