Compare commits
No commits in common. "dc24eadafe7385fba59a3b3d65987c2e53b895f5" and "4390e80b26db69dbc51ff2f55e1bd6af51f6ca26" have entirely different histories.
dc24eadafe
...
4390e80b26
2 changed files with 0 additions and 58 deletions
|
|
@ -1,42 +0,0 @@
|
||||||
#include "dynamic_array.h"
|
|
||||||
#include "arena_allocator.h"
|
|
||||||
#include <assert.h>
|
|
||||||
#include <stddef.h>
|
|
||||||
|
|
||||||
wn_darr *wn_darr_init(Arena *arena, size_t object_size, size_t object_count) {
|
|
||||||
wn_darr *darr = arena_alloc(arena, sizeof(wn_darr));
|
|
||||||
*darr =
|
|
||||||
(wn_darr){.metadata = arena_init(arena, object_count * sizeof(void *)),
|
|
||||||
.data = arena_init(arena, object_count * object_size),
|
|
||||||
.object_count = 0,
|
|
||||||
.object_size = object_size};
|
|
||||||
|
|
||||||
assert(darr->metadata != NULL);
|
|
||||||
assert(darr->data != NULL);
|
|
||||||
|
|
||||||
return darr;
|
|
||||||
}
|
|
||||||
|
|
||||||
void wn_darr_deinit(wn_darr *dynamic_array) {
|
|
||||||
assert(dynamic_array->metadata != NULL);
|
|
||||||
assert(dynamic_array->data != NULL);
|
|
||||||
|
|
||||||
arena_deinit(dynamic_array->metadata);
|
|
||||||
arena_deinit(dynamic_array->data);
|
|
||||||
}
|
|
||||||
|
|
||||||
void *wn_darr_append(wn_darr *dynamic_array, void *data) {
|
|
||||||
void *object = arena_alloc(dynamic_array->data, dynamic_array->object_size);
|
|
||||||
void *objectptr = arena_alloc(dynamic_array->metadata, sizeof(void *));
|
|
||||||
objectptr = object;
|
|
||||||
|
|
||||||
dynamic_array->object_count++;
|
|
||||||
|
|
||||||
return object;
|
|
||||||
}
|
|
||||||
|
|
||||||
// TODO: This
|
|
||||||
void *wn_darr_get(wn_darr *dynamic_array, size_t index) {
|
|
||||||
void **data = (void **)dynamic_array->metadata->begin->data;
|
|
||||||
return data[index];
|
|
||||||
}
|
|
||||||
|
|
@ -1,16 +0,0 @@
|
||||||
#pragma once
|
|
||||||
#include "arena_allocator.h"
|
|
||||||
#include <stddef.h>
|
|
||||||
|
|
||||||
typedef struct wn_darr {
|
|
||||||
Arena *metadata;
|
|
||||||
Arena *data;
|
|
||||||
size_t object_count;
|
|
||||||
size_t object_size;
|
|
||||||
} wn_darr;
|
|
||||||
|
|
||||||
wn_darr *wn_darr_init(Arena *arena, size_t object_size, size_t object_number);
|
|
||||||
void wn_darr_deinit(wn_darr *dynamic_array);
|
|
||||||
|
|
||||||
void *wn_darr_append(wn_darr *dynamic_array, void *data);
|
|
||||||
void *wn_darr_get(wn_darr *dynamic_array, size_t index);
|
|
||||||
Loading…
Reference in a new issue