Mercurial
diff dowa/d_memory.c @ 65:ecb6ee6a22c3
[Misc] I will no longer drink cool aids of capital P.
| author | June Park <parkjune1995@gmail.com> |
|---|---|
| date | Wed, 24 Dec 2025 06:22:59 -0800 |
| parents | a30944e5719e |
| children | 75de5903355c |
line wrap: on
line diff
--- a/dowa/d_memory.c Tue Dec 23 15:18:46 2025 -0800 +++ b/dowa/d_memory.c Wed Dec 24 06:22:59 2025 -0800 @@ -1,9 +1,9 @@ #include "dowa.h" // --- Arena --- // -Dowa_PArena Dowa_Arena_Create(size_t capacity) +Dowa_Arena *Dowa_Arena_Create(size_t capacity) { - Dowa_PArena p_arena = malloc(sizeof(Dowa_Arena)); + Dowa_Arena *p_arena = malloc(sizeof(Dowa_Arena)); if (p_arena == NULL) { perror("malloc"); @@ -21,7 +21,7 @@ return p_arena; } -void *Dowa_Arena_Allocate(Dowa_PArena p_arena, size_t size) +void *Dowa_Arena_Allocate(Dowa_Arena *p_arena, size_t size) { if (!p_arena || !p_arena->buffer || size == 0) return NULL; @@ -35,7 +35,7 @@ return currnet_ptr; } -void Dowa_Arena_Destroy(Dowa_PArena p_arena) +void Dowa_Arena_Destroy(Dowa_Arena *p_arena) { if (!p_arena) return; @@ -44,7 +44,7 @@ Dowa_Free(p_arena); } -void *Dowa_Arena_Copy(Dowa_PArena p_arena, const void *src, size_t size) +void *Dowa_Arena_Copy(Dowa_Arena *p_arena, const void *src, size_t size) { if (p_arena == NULL || src == NULL || size == 0) return NULL; @@ -57,28 +57,28 @@ return dest; } -void Dowa_Arena_Reset(Dowa_PArena p_arena) +void Dowa_Arena_Reset(Dowa_Arena *p_arena) { if (!p_arena) return; p_arena->offset = 0; } -size_t Dowa_Arena_Get_Used(Dowa_PArena p_arena) +size_t Dowa_Arena_Get_Used(Dowa_Arena *p_arena) { if (!p_arena) return 0; return p_arena->offset; } -size_t Dowa_Arena_Get_Remaining(Dowa_PArena p_arena) +size_t Dowa_Arena_Get_Remaining(Dowa_Arena *p_arena) { if (!p_arena) return 0; return p_arena->capacity - p_arena->offset; } // --- HashMap --- // -Dowa_PHashMap Dowa_HashMap_Create(size_t capacity) +Dowa_HashMap *Dowa_HashMap_Create(size_t capacity) { - Dowa_PHashMap p_hash_map; + Dowa_HashMap *p_hash_map; p_hash_map = malloc(sizeof(Dowa_HashMap)); if (p_hash_map == NULL) { @@ -96,7 +96,7 @@ return p_hash_map; } -Dowa_PHashMap Dowa_HashMap_Create_With_Arena(size_t capacity, Dowa_PArena p_arena) +Dowa_HashMap *Dowa_HashMap_Create_With_Arena(size_t capacity, Dowa_Arena *p_arena) { if (p_arena == NULL) { @@ -104,7 +104,7 @@ return Dowa_HashMap_Create(capacity); } - Dowa_PHashMap p_hash_map; + Dowa_HashMap *p_hash_map; p_hash_map = Dowa_Arena_Allocate(p_arena, sizeof(Dowa_HashMap)); if (p_hash_map == NULL) { @@ -122,7 +122,7 @@ return p_hash_map; } -void Dowa_HashMap_Destroy(Dowa_PHashMap p_hash_map) +void Dowa_HashMap_Destroy(Dowa_HashMap *p_hash_map) { if (!p_hash_map) return; @@ -134,8 +134,8 @@ } else { - Dowa_PHashEntry entry; - Dowa_PHashEntry next; + Dowa_HashEntry *entry; + Dowa_HashEntry *next; if (p_hash_map->entries) { for (int idx=0; idx<p_hash_map->capacity; idx++) @@ -156,7 +156,7 @@ Dowa_Free(p_hash_map); } -int32 Dowa_HashMap_Get_Position(Dowa_PHashMap p_hash_map, const char *key) +int32 Dowa_HashMap_Get_Position(Dowa_HashMap *p_hash_map, const char *key) { if (!p_hash_map || !key) return -1; @@ -170,13 +170,13 @@ return hash_val % p_hash_map->capacity; } -void *Dowa_HashMap_Get(Dowa_PHashMap p_hash_map, const char *key) +void *Dowa_HashMap_Get(Dowa_HashMap *p_hash_map, const char *key) { if (!p_hash_map || !key) return NULL; int idx = Dowa_HashMap_Get_Position(p_hash_map, key); - Dowa_PHashEntry entry = p_hash_map->entries[idx]; + Dowa_HashEntry *entry = p_hash_map->entries[idx]; while (entry) { @@ -191,7 +191,7 @@ } -int32 Dowa_HashMap_Push_Value_With_Type_NoCopy(Dowa_PHashMap p_hash_map, const char *key, +int32 Dowa_HashMap_Push_Value_With_Type_NoCopy(Dowa_HashMap *p_hash_map, const char *key, void *value, size_t value_size, Dowa_HashMap_ValueType type) { @@ -199,8 +199,8 @@ return -1; int idx = Dowa_HashMap_Get_Position(p_hash_map, key); - Dowa_PHashEntry entry = p_hash_map->entries[idx]; - Dowa_PHashEntry prev = NULL; + Dowa_HashEntry *entry = p_hash_map->entries[idx]; + Dowa_HashEntry *prev = NULL; // Old key while (entry) @@ -261,7 +261,7 @@ return 0; } -int32 Dowa_HashMap_Push_Value_With_Type(Dowa_PHashMap p_hash_map, const char *key, +int32 Dowa_HashMap_Push_Value_With_Type(Dowa_HashMap *p_hash_map, const char *key, void *value, size_t value_size, Dowa_HashMap_ValueType type) { @@ -269,8 +269,8 @@ return -1; int idx = Dowa_HashMap_Get_Position(p_hash_map, key); - Dowa_PHashEntry entry = p_hash_map->entries[idx]; - Dowa_PHashEntry prev = NULL; + Dowa_HashEntry *entry = p_hash_map->entries[idx]; + Dowa_HashEntry *prev = NULL; // Check for existing key while (entry) @@ -324,19 +324,19 @@ return 0; } -void Dowa_HashMap_Push_Value(Dowa_PHashMap p_hash_map, const char *key, void *value, size_t value_size) +void Dowa_HashMap_Push_Value(Dowa_HashMap *p_hash_map, const char *key, void *value, size_t value_size) { Dowa_HashMap_Push_Value_With_Type(p_hash_map, key, value, value_size, DOWA_HASH_MAP_TYPE_BUFFER); } -void Dowa_HashMap_Pop_Key(Dowa_PHashMap p_hash_map, const char *key) +void Dowa_HashMap_Pop_Key(Dowa_HashMap *p_hash_map, const char *key) { if (!p_hash_map || !key) return; int idx = Dowa_HashMap_Get_Position(p_hash_map, key); - Dowa_PHashEntry entry = p_hash_map->entries[idx]; - Dowa_PHashEntry prev = NULL; + Dowa_HashEntry *entry = p_hash_map->entries[idx]; + Dowa_HashEntry *prev = NULL; while (entry) { @@ -363,13 +363,13 @@ } } -boolean Dowa_HashMap_Has_Key(Dowa_PHashMap p_hash_map, const char *key) +boolean Dowa_HashMap_Has_Key(Dowa_HashMap *p_hash_map, const char *key) { if (!p_hash_map || !key) return FALSE; int idx = Dowa_HashMap_Get_Position(p_hash_map, key); - Dowa_PHashEntry entry = p_hash_map->entries[idx]; + Dowa_HashEntry *entry = p_hash_map->entries[idx]; while (entry) { @@ -381,7 +381,7 @@ return FALSE; } -void Dowa_HashMap_Clear(Dowa_PHashMap p_hash_map) +void Dowa_HashMap_Clear(Dowa_HashMap *p_hash_map) { if (!p_hash_map) return; @@ -392,8 +392,8 @@ } else { - Dowa_PHashEntry entry; - Dowa_PHashEntry next; + Dowa_HashEntry *entry; + Dowa_HashEntry *next; if (p_hash_map->entries) { for (int idx=0; idx<p_hash_map->capacity; idx++) @@ -414,13 +414,13 @@ p_hash_map->current_capacity = 0; } -uint32 Dowa_HashMap_Get_Count(Dowa_PHashMap p_hash_map) +uint32 Dowa_HashMap_Get_Count(Dowa_HashMap *p_hash_map) { if (!p_hash_map) return 0; return p_hash_map->current_capacity; } -void Dowa_HashMap_Print(Dowa_PHashMap map) +void Dowa_HashMap_Print(Dowa_HashMap *map) { if (!map) { @@ -431,7 +431,7 @@ printf("\n-----------\n\n"); for (size_t i = 0; i < map->capacity; ++i) { - Dowa_PHashEntry e = map->entries[i]; + Dowa_HashEntry *e = map->entries[i]; while (e) { if (!e) break; @@ -450,7 +450,7 @@ break; case DOWA_HASH_MAP_TYPE_STRING: { - printf("%s\n", (char*)e->buffer); + printf("%.*s\n", (int)e->capacity, (char*)e->buffer); } break; case DOWA_HASH_MAP_TYPE_HASHMAP: @@ -475,7 +475,7 @@ } #ifdef DIRECTORY -int Dowa_HashMap_Cache_Folder(Dowa_PHashMap p_hash_map, const char *folder_path) +int Dowa_HashMap_Cache_Folder(Dowa_HashMap *p_hash_map, const char *folder_path) { if (!p_hash_map || !folder_path) return -1; @@ -527,7 +527,7 @@ else if (S_ISDIR(st.st_mode)) { // TODO: Adjust the sizes of the recursive map? - Dowa_PHashMap p_child_map = Dowa_HashMap_Create_With_Arena(100, p_hash_map->p_arena); + Dowa_HashMap *p_child_map = Dowa_HashMap_Create_With_Arena(100, p_hash_map->p_arena); if (!p_child_map) { perror("Dowa_HashMap_Create");