@@ -3801,7 +3801,7 @@ byteswriter_allocated(PyBytesWriter *writer)
38013801
38023802
38033803static inline int
3804- byteswriter_resize (PyBytesWriter * writer , Py_ssize_t size , int overallocate )
3804+ byteswriter_resize (PyBytesWriter * writer , Py_ssize_t size , int resize )
38053805{
38063806 assert (size >= 0 );
38073807
@@ -3810,7 +3810,7 @@ byteswriter_resize(PyBytesWriter *writer, Py_ssize_t size, int overallocate)
38103810 return 0 ;
38113811 }
38123812
3813- if (overallocate & writer -> overallocate ) {
3813+ if (resize & writer -> overallocate ) {
38143814 if (size <= (PY_SSIZE_T_MAX - size / OVERALLOCATE_FACTOR )) {
38153815 size += size / OVERALLOCATE_FACTOR ;
38163816 }
@@ -3834,25 +3834,29 @@ byteswriter_resize(PyBytesWriter *writer, Py_ssize_t size, int overallocate)
38343834 if (writer -> obj == NULL ) {
38353835 return -1 ;
38363836 }
3837- assert ((size_t )size > sizeof (writer -> small_buffer ));
3838- memcpy (PyByteArray_AS_STRING (writer -> obj ),
3839- writer -> small_buffer ,
3840- sizeof (writer -> small_buffer ));
3837+ if (resize ) {
3838+ assert ((size_t )size > sizeof (writer -> small_buffer ));
3839+ memcpy (PyByteArray_AS_STRING (writer -> obj ),
3840+ writer -> small_buffer ,
3841+ sizeof (writer -> small_buffer ));
3842+ }
38413843 }
38423844 else {
38433845 writer -> obj = PyBytes_FromStringAndSize (NULL , size );
38443846 if (writer -> obj == NULL ) {
38453847 return -1 ;
38463848 }
3847- assert ((size_t )size > sizeof (writer -> small_buffer ));
3848- memcpy (PyBytes_AS_STRING (writer -> obj ),
3849- writer -> small_buffer ,
3850- sizeof (writer -> small_buffer ));
3849+ if (resize ) {
3850+ assert ((size_t )size > sizeof (writer -> small_buffer ));
3851+ memcpy (PyBytes_AS_STRING (writer -> obj ),
3852+ writer -> small_buffer ,
3853+ sizeof (writer -> small_buffer ));
3854+ }
38513855 }
38523856
38533857#ifdef Py_DEBUG
38543858 Py_ssize_t allocated = byteswriter_allocated (writer );
3855- if (overallocate && allocated > old_allocated ) {
3859+ if (resize && allocated > old_allocated ) {
38563860 memset (byteswriter_data (writer ) + old_allocated , 0xff ,
38573861 allocated - old_allocated );
38583862 }
0 commit comments