From b83b7a17db9d8088b80335a0098a347c08d4aae0 Mon Sep 17 00:00:00 2001 From: "Michael D. Lowis" Date: Tue, 14 Aug 2018 12:38:48 -0400 Subject: [PATCH] Removed vector implementation --- Makefile | 1 - source/sclpl.h | 17 ----------- source/vec.c | 83 -------------------------------------------------- 3 files changed, 101 deletions(-) delete mode 100644 source/vec.c diff --git a/Makefile b/Makefile index 5875fdd..efe80dd 100644 --- a/Makefile +++ b/Makefile @@ -20,7 +20,6 @@ ARFLAGS = rcs BIN = sclpl OBJS = source/main.o \ source/pkg.o \ - source/vec.o \ source/pprint.o \ source/parser.o \ source/lexer.o \ diff --git a/source/sclpl.h b/source/sclpl.h index aa5482d..f3c435c 100644 --- a/source/sclpl.h +++ b/source/sclpl.h @@ -20,23 +20,6 @@ static void* emalloc(size_t size) { return ptr; } -/* Vector Implementation - *****************************************************************************/ -typedef struct { - size_t count; - size_t size; - size_t capacity; - void** buffer; -} vec_t; - -void vec_init(vec_t* vec); -void vec_deinit(vec_t* vec); -void vec_clear(vec_t* vec); -size_t vec_size(vec_t* vec); -void* vec_at(vec_t* vec, size_t index); -void vec_push_back(vec_t* vec, void* data); -void vec_set(vec_t* vec, size_t index, void* data); - /* Token Types *****************************************************************************/ typedef enum { diff --git a/source/vec.c b/source/vec.c deleted file mode 100644 index ac545ef..0000000 --- a/source/vec.c +++ /dev/null @@ -1,83 +0,0 @@ -/** - @file vec.c -*/ -#include - -#ifndef DEFAULT_VEC_CAPACITY -#define DEFAULT_VEC_CAPACITY (size_t)8 -#endif - -void vec_init(vec_t* vec) -{ - vec->count = 0; - vec->capacity = DEFAULT_VEC_CAPACITY; - vec->buffer = malloc(sizeof(void*) * vec->capacity); -} - -void vec_deinit(vec_t* vec) -{ - vec_clear(vec); - free(vec->buffer); -} - -size_t vec_size(vec_t* vec) -{ - return vec->count; -} - -void* vec_at(vec_t* vec, size_t index) -{ - assert(index < vec->count); - return vec->buffer[index]; -} - -static void vec_reserve(vec_t* vec, size_t size) -{ - assert(vec != NULL); - vec->buffer = realloc( vec->buffer, sizeof(void*) * size ); - assert(vec->buffer != NULL); - vec->capacity = size; -} - -static size_t vec_next_capacity(size_t req_size) -{ - size_t next_power = req_size; - size_t num_bits = sizeof(size_t) * 8; - size_t bit_n; - /* Find the next highest power of 2 */ - next_power--; - for (bit_n = 1; bit_n < num_bits; bit_n = bit_n << 1) - { - next_power = next_power | (next_power >> bit_n); - } - next_power++; - return next_power; -} - -static void vec_resize(vec_t* vec, size_t count, void* fillval) -{ - if (count > vec->count) { - vec_reserve(vec, vec_next_capacity(count+1)); - for (; vec->count < count; vec->count++) - vec->buffer[vec->count] = fillval; - } else if (count < vec->count) { - vec->count = count; - } -} - -void vec_push_back(vec_t* vec, void* data) -{ - vec_resize(vec, vec->count+1, data); -} - -void vec_set(vec_t* vec, size_t index, void* data) -{ - assert(index < vec->count); - vec->buffer[index] = data; -} - -void vec_clear(vec_t* vec) -{ - vec->count = 0; -} - -- 2.54.0