_PyBytesWriter: rename size attribute to min_size

This commit is contained in:
Victor Stinner 2015-10-09 12:37:03 +02:00
parent fa7762ec06
commit 53926a1ce2
2 changed files with 10 additions and 9 deletions

View File

@ -134,8 +134,9 @@ typedef struct {
/* Number of allocated size */ /* Number of allocated size */
Py_ssize_t allocated; Py_ssize_t allocated;
/* Current size of the buffer (can be smaller than the allocated size) */ /* Minimum number of allocated bytes,
Py_ssize_t size; incremented by _PyBytesWriter_Prepare() */
Py_ssize_t min_size;
/* If non-zero, overallocate the buffer (default: 0). */ /* If non-zero, overallocate the buffer (default: 0). */
int overallocate; int overallocate;

View File

@ -3821,7 +3821,7 @@ _PyBytesWriter_Init(_PyBytesWriter *writer)
{ {
writer->buffer = NULL; writer->buffer = NULL;
writer->allocated = 0; writer->allocated = 0;
writer->size = 0; writer->min_size = 0;
writer->overallocate = 0; writer->overallocate = 0;
writer->use_small_buffer = 0; writer->use_small_buffer = 0;
#ifdef Py_DEBUG #ifdef Py_DEBUG
@ -3874,7 +3874,7 @@ _PyBytesWriter_CheckConsistency(_PyBytesWriter *writer, char *str)
} }
start = _PyBytesWriter_AsString(writer); start = _PyBytesWriter_AsString(writer);
assert(0 <= writer->size && writer->size <= writer->allocated); assert(0 <= writer->min_size && writer->min_size <= writer->allocated);
/* the last byte must always be null */ /* the last byte must always be null */
assert(start[writer->allocated] == 0); assert(start[writer->allocated] == 0);
@ -3897,18 +3897,18 @@ _PyBytesWriter_Prepare(_PyBytesWriter *writer, char *str, Py_ssize_t size)
return str; return str;
} }
if (writer->size > PY_SSIZE_T_MAX - size) { if (writer->min_size > PY_SSIZE_T_MAX - size) {
PyErr_NoMemory(); PyErr_NoMemory();
_PyBytesWriter_Dealloc(writer); _PyBytesWriter_Dealloc(writer);
return NULL; return NULL;
} }
writer->size += size; writer->min_size += size;
allocated = writer->allocated; allocated = writer->allocated;
if (writer->size <= allocated) if (writer->min_size <= allocated)
return str; return str;
allocated = writer->size; allocated = writer->min_size;
if (writer->overallocate if (writer->overallocate
&& allocated <= (PY_SSIZE_T_MAX - allocated / OVERALLOCATE_FACTOR)) { && allocated <= (PY_SSIZE_T_MAX - allocated / OVERALLOCATE_FACTOR)) {
/* overallocate to limit the number of realloc() */ /* overallocate to limit the number of realloc() */
@ -3957,7 +3957,7 @@ char*
_PyBytesWriter_Alloc(_PyBytesWriter *writer, Py_ssize_t size) _PyBytesWriter_Alloc(_PyBytesWriter *writer, Py_ssize_t size)
{ {
/* ensure that _PyBytesWriter_Alloc() is only called once */ /* ensure that _PyBytesWriter_Alloc() is only called once */
assert(writer->size == 0 && writer->buffer == NULL); assert(writer->min_size == 0 && writer->buffer == NULL);
assert(size >= 0); assert(size >= 0);
writer->use_small_buffer = 1; writer->use_small_buffer = 1;