1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- #ifndef _LIBC
- # include <libc-config.h>
- #endif
- #include <scratch_buffer.h>
- #include <errno.h>
- bool
- __libc_scratch_buffer_grow (struct scratch_buffer *buffer)
- {
- void *new_ptr;
- size_t new_length = buffer->length * 2;
-
- scratch_buffer_free (buffer);
-
- if (__glibc_likely (new_length >= buffer->length))
- new_ptr = malloc (new_length);
- else
- {
- __set_errno (ENOMEM);
- new_ptr = NULL;
- }
- if (__glibc_unlikely (new_ptr == NULL))
- {
-
- scratch_buffer_init (buffer);
- return false;
- }
-
- buffer->data = new_ptr;
- buffer->length = new_length;
- return true;
- }
- libc_hidden_def (__libc_scratch_buffer_grow)
|