aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--BumpAlloc.c15
-rw-r--r--MemoryManager.c25
-rw-r--r--String.c14
-rw-r--r--example.c2
4 files changed, 37 insertions, 19 deletions
diff --git a/BumpAlloc.c b/BumpAlloc.c
index 09af8fa..e162081 100644
--- a/BumpAlloc.c
+++ b/BumpAlloc.c
@@ -14,7 +14,7 @@ top_size(struct BumpAlloc* b) {
return (usize*)(b->memory + b->top);
}
-static int
+static inline int
bump_resizeable(struct BumpAlloc *b, void *ptr) {
if (NULL == b)
return 0;
@@ -48,6 +48,9 @@ bump_free(MemoryManager mm, void **ptr) {
Result
bump_destroy(MemoryManager *mm) {
+ if (NULL == mm)
+ return R_NullArgument;
+
if (NULL == mm->priv)
return R_Uninitialized;
@@ -56,7 +59,7 @@ bump_destroy(MemoryManager *mm) {
if (NULL == b.memory) {
free(mm->priv);
mm->priv = NULL;
- return R_Uninitialized;
+ return R_InvalidArgument;
}
free(b.memory);
@@ -67,13 +70,13 @@ bump_destroy(MemoryManager *mm) {
}
Result
-bump_alloc(MemoryManager mm, void** ptr, usize size) {
- if (NULL == mm.priv)
- return R_Uninitialized;
-
+bump_alloc(MemoryManager mm, void **ptr, usize size) {
if (0 == size || NULL == ptr)
return R_NullArgument;
+ if (NULL == mm.priv)
+ return R_Uninitialized;
+
struct BumpAlloc *b = (struct BumpAlloc*)mm.priv;
if (size + b->top + sizeof(usize) > b->size)
diff --git a/MemoryManager.c b/MemoryManager.c
index 68dab6e..98e70e7 100644
--- a/MemoryManager.c
+++ b/MemoryManager.c
@@ -1,27 +1,42 @@
#include "MemoryManager.h"
+#include "Types.h"
#include <stdlib.h>
-Result std_alloc(MemoryManager mm, void** ptr, usize size) {
+Result
+std_alloc(MemoryManager mm, void **ptr, usize size) {
+ if (NULL == ptr)
+ return R_NullArgument;
+
*ptr = malloc(size);
return (*ptr == NULL) ? R_Err : R_Ok;
}
-Result std_realloc(MemoryManager mm, void** ptr, usize size) {
+Result
+std_realloc(MemoryManager mm, void **ptr, usize size) {
+ if (NULL == ptr)
+ return R_NullArgument;
+
*ptr = realloc(*ptr, size);
return (*ptr == NULL) ? R_Err : R_Ok;
}
-Result std_free(MemoryManager mm, void** ptr) {
+Result
+std_free(MemoryManager mm, void **ptr) {
+ if (NULL == ptr)
+ return R_NullArgument;
+
free(*ptr);
*ptr = NULL;
return R_Ok;
}
-Result std_destroy(MemoryManager *mm) {
+Result
+std_destroy(MemoryManager *mm) {
return R_Unavailable;
}
-MemoryManager M_std() {
+MemoryManager
+M_std() {
return (MemoryManager){
.alloc = &std_alloc,
.realloc = &std_realloc,
diff --git a/String.c b/String.c
index 17c2da0..ffcf687 100644
--- a/String.c
+++ b/String.c
@@ -35,7 +35,7 @@ S_start(MemoryManager *mm, usize length) {
}
String
-S_new(MemoryManager *mm, const char* str) {
+S_new(MemoryManager *mm, const char *str) {
if (NULL == str)
return NULL;
@@ -91,7 +91,7 @@ S_vconcat(MemoryManager *mm, va_list args) {
va_list temp;
va_copy(temp, args);
- for (const char* str = va_arg(temp, const char*); str != NULL; str = va_arg(temp, const char*)) {
+ for (const char *str = va_arg(temp, const char*); str != NULL; str = va_arg(temp, const char*)) {
length += strlen(str);
}
va_end(temp);
@@ -102,7 +102,7 @@ S_vconcat(MemoryManager *mm, va_list args) {
return NULL;
if (0 < length) {
- for (const char* str = va_arg(args, const char*); str != NULL; str = va_arg(args, const char*))
+ for (const char *str = va_arg(args, const char*); str != NULL; str = va_arg(args, const char*))
strncat(result, str, length);
}
return result;
@@ -121,7 +121,7 @@ S_concat(MemoryManager *mm, ...) {
}
String
-S_vprintf(MemoryManager *mm, const char* fmt, va_list args) {
+S_vprintf(MemoryManager *mm, const char *fmt, va_list args) {
if (NULL == mm)
return NULL;
@@ -139,7 +139,7 @@ S_vprintf(MemoryManager *mm, const char* fmt, va_list args) {
}
String
-S_printf(MemoryManager *mm, const char* fmt, ...) {
+S_printf(MemoryManager *mm, const char *fmt, ...) {
va_list args;
va_start(args, fmt);
@@ -172,7 +172,7 @@ S_resize(String *s, usize length) {
}
Result
-S_append(String *s, const char* str) {
+S_append(String *s, const char *str) {
if (NULL == str)
return R_Uninitialized;
@@ -187,7 +187,7 @@ S_append(String *s, const char* str) {
}
Result
-S_prepend(String *s, const char* str) {
+S_prepend(String *s, const char *str) {
if (NULL == s)
return R_Uninitialized;
diff --git a/example.c b/example.c
index 2f50152..4081c21 100644
--- a/example.c
+++ b/example.c
@@ -12,7 +12,7 @@ main() {
Result status = R_Ok;
for (usize i = 7; i <= 4830; i += 69) {
- PRINT_NOTOK(V_pushp((void***)&hexes, S_printf(&t, "%x", i)));
+ PRINT_NOTOK(V_pushp((Vector**)&hexes, S_printf(&t, "%x", i)));
}
String all = S_printf(&g, "Total: %ld\n", V_count(hexes));