aboutsummaryrefslogtreecommitdiff
path: root/src/std/buffer.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/std/buffer.c')
-rw-r--r--src/std/buffer.c16
1 files changed, 13 insertions, 3 deletions
diff --git a/src/std/buffer.c b/src/std/buffer.c
index 8e23a30..5fb4b05 100644
--- a/src/std/buffer.c
+++ b/src/std/buffer.c
@@ -40,13 +40,23 @@ static CHECK_RESULT int buffer_ensure_capacity(Buffer *self, usize new_capacity)
}
int buffer_append(Buffer *self, const void *data, usize size) {
+ assert(data);
return_if_error(buffer_ensure_capacity(self, self->size + size));
- if(data)
- am_memcpy(self->data + self->size, data, size);
+ am_memcpy(self->data + self->size, data, size);
self->size += size;
return BUFFER_OK;
}
+int buffer_append_empty(Buffer *self, usize size) {
+ return_if_error(buffer_ensure_capacity(self, self->size + size));
+ self->size += size;
+ return BUFFER_OK;
+}
+
+int buffer_expand(Buffer *self, usize size) {
+ return buffer_ensure_capacity(self, self->size + size);
+}
+
void* buffer_get(Buffer *self, usize index, usize type_size) {
usize real_index;
real_index = index * type_size;
@@ -66,7 +76,7 @@ void buffer_clear(Buffer *self) {
self->size = 0;
}
-void* buffer_start(Buffer *self) {
+void* buffer_begin(Buffer *self) {
return self->data;
}