fix: hectic C: func definitions
This commit is contained in:
@@ -98,7 +98,7 @@ void* arena_alloc_or_null__(const char *file, const char *func, int line, Arena
|
|||||||
raise_message(LOG_LEVEL_TRACE, file, func, line, "arena_alloc_or_null(%p, %zu)", arena, size);
|
raise_message(LOG_LEVEL_TRACE, file, func, line, "arena_alloc_or_null(%p, %zu)", arena, size);
|
||||||
void *mem = NULL;
|
void *mem = NULL;
|
||||||
if (arena->begin == 0) {
|
if (arena->begin == 0) {
|
||||||
*arena = arena_init__(file, line, 1024); // ARENA_DEFAULT_SIZE assumed as 1024
|
*arena = arena_init__(file, func, line, 1024); // ARENA_DEFAULT_SIZE assumed as 1024
|
||||||
}
|
}
|
||||||
size_t current = (size_t)arena->current - (size_t)arena->begin;
|
size_t current = (size_t)arena->current - (size_t)arena->begin;
|
||||||
if (arena->capacity <= current || arena->capacity - current < size) {
|
if (arena->capacity <= current || arena->capacity - current < size) {
|
||||||
@@ -517,24 +517,24 @@ Json *json_get_object_item(const Json * const object, const char * const key) {
|
|||||||
// -----------
|
// -----------
|
||||||
|
|
||||||
// Create a slice from an array with boundary check.
|
// Create a slice from an array with boundary check.
|
||||||
Slice slice_create__(const char *file, int line, size_t isize, void *array, size_t array_len, size_t start, size_t len) {
|
Slice slice_create__(const char *file, const char *func, int line, size_t isize, void *array, size_t array_len, size_t start, size_t len) {
|
||||||
raise_message(LOG_LEVEL_TRACE, file, line, "slice_create(<optimized>, <optimized>, <optimized>, <optimized>, <optimized>)");
|
raise_message(LOG_LEVEL_TRACE, file, func, line, "slice_create(<optimized>, <optimized>, <optimized>, <optimized>, <optimized>)");
|
||||||
if (start + len > array_len)
|
if (start + len > array_len)
|
||||||
return (Slice){NULL, 0, isize};
|
return (Slice){NULL, 0, isize};
|
||||||
return (Slice){ (char *)array + start * isize, len, isize };
|
return (Slice){ (char *)array + start * isize, len, isize };
|
||||||
}
|
}
|
||||||
|
|
||||||
// Return a subslice from an existing slice.
|
// Return a subslice from an existing slice.
|
||||||
Slice slice_subslice__(const char *file, int line, Slice s, size_t start, size_t len) {
|
Slice slice_subslice__(const char *file, const char *func, int line, Slice s, size_t start, size_t len) {
|
||||||
raise_message(LOG_LEVEL_TRACE, file, line, "slice_subslice(<optimized>, <optimized>, <optimized>)");
|
raise_message(LOG_LEVEL_TRACE, file, func, line, "slice_subslice(<optimized>, <optimized>, <optimized>)");
|
||||||
if (start + len > s.len)
|
if (start + len > s.len)
|
||||||
return (Slice){NULL, 0, s.isize};
|
return (Slice){NULL, 0, s.isize};
|
||||||
return (Slice){(char*)s.data + start * s.isize, len, s.isize};
|
return (Slice){(char*)s.data + start * s.isize, len, s.isize};
|
||||||
}
|
}
|
||||||
|
|
||||||
int* arena_slice_copy__(const char *file, int line, Arena *arena, Slice s) {
|
int* arena_slice_copy__(const char *file, const char *func, int line, Arena *arena, Slice s) {
|
||||||
raise_message(LOG_LEVEL_TRACE, file, line, "arena_slice_copy(<optimized>, <optimized>)");
|
raise_message(LOG_LEVEL_TRACE, file, func, line, "arena_slice_copy(<optimized>, <optimized>)");
|
||||||
int *copy = (void*) arena_alloc__(file, line, arena, s.len * sizeof(int));
|
int *copy = (void*) arena_alloc__(file, func, line, arena, s.len * sizeof(int));
|
||||||
if (copy)
|
if (copy)
|
||||||
memcpy(copy, s.data, s.len * s.isize);
|
memcpy(copy, s.data, s.len * s.isize);
|
||||||
return copy;
|
return copy;
|
||||||
|
|||||||
@@ -202,7 +202,7 @@ void* arena_realloc_copy__(const char *file, const char *func, int line, Arena *
|
|||||||
#define MEM_RiB (MEM_YiB * 1024)
|
#define MEM_RiB (MEM_YiB * 1024)
|
||||||
#define MEM_QiB (MEM_RiB * 1024)
|
#define MEM_QiB (MEM_RiB * 1024)
|
||||||
|
|
||||||
void substr_clone__(const char *file, int line, const char * const src, char *dest, size_t from, size_t len);
|
void substr_clone__(const char *file, const char *func, int line, const char * const src, char *dest, size_t from, size_t len);
|
||||||
#define substr_clone(src, dest, from, len) substr_clone__(__FILE__, __LINE__, src, dest, from, len)
|
#define substr_clone(src, dest, from, len) substr_clone__(__FILE__, __LINE__, src, dest, from, len)
|
||||||
|
|
||||||
// ----------
|
// ----------
|
||||||
@@ -260,11 +260,11 @@ typedef struct {
|
|||||||
// printf("Content: %d\n", SLICE_ARGS(slice, int));
|
// printf("Content: %d\n", SLICE_ARGS(slice, int));
|
||||||
#define SLICE_ARGS(slice, type) ((int)((slice).len / sizeof(type))), ((type*)((slice).data))
|
#define SLICE_ARGS(slice, type) ((int)((slice).len / sizeof(type))), ((type*)((slice).data))
|
||||||
|
|
||||||
Slice slice_create__(const char *file, int line, size_t isize, void *array, size_t array_len, size_t start, size_t len);
|
Slice slice_create__(const char *file, const char *func, int line, size_t isize, void *array, size_t array_len, size_t start, size_t len);
|
||||||
|
|
||||||
Slice slice_subslice__(const char *file, int line, Slice s, size_t start, size_t len);
|
Slice slice_subslice__(const char *file, const char *func, int line, Slice s, size_t start, size_t len);
|
||||||
|
|
||||||
int* arena_slice_copy__(const char *file, int line, Arena *arena, Slice s);
|
int* arena_slice_copy__(const char *file, const char *func, int line, Arena *arena, Slice s);
|
||||||
|
|
||||||
#define slice_create(type, array, array_len, start, len) \
|
#define slice_create(type, array, array_len, start, len) \
|
||||||
slice_create__(__FILE__, __func__, __LINE__, sizeof(type), array, array_len, start, len)
|
slice_create__(__FILE__, __func__, __LINE__, sizeof(type), array, array_len, start, len)
|
||||||
|
|||||||
Reference in New Issue
Block a user