PYTHON-2188 Always raise an error when bson encoding exceeds 2GiB

Remove unused buffer_write_at_position.
This commit is contained in:
Shane Harvey 2020-04-07 11:31:49 -07:00
parent c96220df0f
commit 24e8aebf12
2 changed files with 8 additions and 22 deletions

View File

@ -89,10 +89,16 @@ static int buffer_grow(buffer_t buffer, int min_length) {
/* Assure that `buffer` has at least `size` free bytes (and grow if needed).
* Return non-zero on allocation failure. */
static int buffer_assure_space(buffer_t buffer, int size) {
if (buffer->position + size <= buffer->size) {
int new_size = buffer->position + size;
/* Check for overflow. */
if (new_size < buffer->position) {
return 1;
}
if (new_size <= buffer->size) {
return 0;
}
return buffer_grow(buffer, buffer->position + size);
return buffer_grow(buffer, new_size);
}
/* Save `size` bytes from the current position in `buffer` (and grow if needed).
@ -118,21 +124,6 @@ int buffer_write(buffer_t buffer, const char* data, int size) {
return 0;
}
/* Write `size` bytes from `data` to `buffer` at position `position`.
* Does not change the internal position of `buffer`.
* Return non-zero if buffer isn't large enough for write. */
int buffer_write_at_position(buffer_t buffer, buffer_position position,
const char* data, int size) {
if (position + size > buffer->size) {
buffer_free(buffer);
return 1;
}
memcpy(buffer->buffer + position, data, size);
return 0;
}
int buffer_get_position(buffer_t buffer) {
return buffer->position;
}

View File

@ -41,11 +41,6 @@ buffer_position buffer_save_space(buffer_t buffer, int size);
* Return non-zero on allocation failure. */
int buffer_write(buffer_t buffer, const char* data, int size);
/* Write `size` bytes from `data` to `buffer` at position `position`.
* Does not change the internal position of `buffer`.
* Return non-zero if buffer isn't large enough for write. */
int buffer_write_at_position(buffer_t buffer, buffer_position position, const char* data, int size);
/* Getters for the internals of a buffer_t.
* Should try to avoid using these as much as possible
* since they break the abstraction. */