diff options
Diffstat (limited to 'vec.c')
-rw-r--r-- | vec.c | 38 |
1 files changed, 0 insertions, 38 deletions
@@ -1,38 +0,0 @@ -/* Copyright (C) 2025 Aryadev Chavali - - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - * FOR A PARTICULAR PURPOSE. See the GNU General Public License Version 2 for - * details. - - * You may distribute and modify this code under the terms of the GNU General - * Public License Version 2, which you should have received a copy of along with - * this program. If not, please go to <https://www.gnu.org/licenses/>. - - * Created: 2025-04-15 - * Description: Vector implementation - */ - -#include "./vec.h" - -#include <malloc.h> -#include <string.h> - -void vec_reserve(arena_t *allocator, vec_t *vec, u32 size) -{ - if (vec->cap - vec->size < size) - { - u32 old_cap = vec->cap; - vec->cap = MAX(vec->cap * 1.5, vec->size + size); - vec->data = arena_realloc(allocator, vec->data, old_cap, vec->cap); - } -} - -u32 vec_append(arena_t *allocator, vec_t *vec, const void *data, u32 size) -{ - vec_reserve(allocator, vec, size); - memcpy(vec->data + vec->size, data, size); - u32 ptr = vec->size; - vec->size += size; - return ptr; -} |