diff options
| author | aura <nw@moneybot.cc> | 2026-03-16 10:15:01 +0100 |
|---|---|---|
| committer | aura <nw@moneybot.cc> | 2026-03-16 10:15:01 +0100 |
| commit | fdc5e8760fb7ac0af8e7ebb98a2076db15e31082 (patch) | |
| tree | c94991e1e594c7703295aa413caf40786f343c1f /src/util/config.h | |
| parent | e2829336cfedb39d23263f75b61ed969c8193534 (diff) | |
giga refactor, fix ALL the leaks
Diffstat (limited to 'src/util/config.h')
| -rw-r--r-- | src/util/config.h | 25 |
1 files changed, 13 insertions, 12 deletions
diff --git a/src/util/config.h b/src/util/config.h index 7973db0..d8c1c2e 100644 --- a/src/util/config.h +++ b/src/util/config.h @@ -1,7 +1,7 @@ #pragma once #include <stdio.h> -#include "allocator.h" +#include "string.h" #include "vector.h" #include "color.h" @@ -26,8 +26,8 @@ enum CfgNodeType_t { // ===================================== [ definitions ] =========================================== -using CFG_PARSEFN = std::function<void( CFG_PARSER*, CFG_SECTION*, char* )>; -using CFG_SERIALIZEFN = std::function<void( CFG_SERIALIZER*, CFG_NODE*, char* )>; +using CFG_PARSEFN = FN<STAT( CFG_PARSER*, CFG_SECTION*, char* )>; +using CFG_SERIALIZEFN = FN<STR( CFG_SERIALIZER*, CFG_NODE*)>; struct CFG_TYPE { U8 type; @@ -37,7 +37,7 @@ struct CFG_TYPE { }; struct CFG_NODE { - char name[64]; + STR name; CFG_NODE* parent; U8 type; }; @@ -66,14 +66,14 @@ extern STAT cfg_parser_clr( CFG_PARSER* parser, CFG_SECTION* section, char* name // ====================================== [ serializers ] ========================================== -extern void cfg_serialize_section( CFG_SERIALIZER* serializer, CFG_NODE* section, char* buf ); -extern void cfg_serialize_bytes( CFG_SERIALIZER* serializer, CFG_NODE* node, char* buf ); -extern void cfg_serialize_str( CFG_SERIALIZER* serializer, CFG_NODE* node, char* buf ); -extern void cfg_serialize_float( CFG_SERIALIZER* serializer, CFG_NODE* node, char* buf ); -extern void cfg_serialize_int( CFG_SERIALIZER* serializer, CFG_NODE* node, char* buf ); -extern void cfg_serialize_vec2( CFG_SERIALIZER* serializer, CFG_NODE* node, char* buf ); -extern void cfg_serialize_vec3( CFG_SERIALIZER* serializer, CFG_NODE* node, char* buf ); -extern void cfg_serialize_clr( CFG_SERIALIZER* serializer, CFG_NODE* node, char* buf ); +extern STR cfg_serialize_section( CFG_SERIALIZER* serializer, CFG_NODE* section ); +extern STR cfg_serialize_bytes( CFG_SERIALIZER* serializer, CFG_NODE* node ); +extern STR cfg_serialize_str( CFG_SERIALIZER* serializer, CFG_NODE* node ); +extern STR cfg_serialize_float( CFG_SERIALIZER* serializer, CFG_NODE* node ); +extern STR cfg_serialize_int( CFG_SERIALIZER* serializer, CFG_NODE* node ); +extern STR cfg_serialize_vec2( CFG_SERIALIZER* serializer, CFG_NODE* node ); +extern STR cfg_serialize_vec3( CFG_SERIALIZER* serializer, CFG_NODE* node ); +extern STR cfg_serialize_clr( CFG_SERIALIZER* serializer, CFG_NODE* node ); // ========================================= [ config ] ============================================ @@ -158,6 +158,7 @@ static void cfg_free( CFG_NODE* n ) { else if( n->type == CFGT_SECTION ) { CFG_SECTION* s = (CFG_SECTION*)n; s->children.each( fn( CFG_NODE** child ) { cfg_free( *child ); } ); + return delete s; } delete n; |
