From 3323c40fa3464d3cc8672ecd040b4ec425568d5f Mon Sep 17 00:00:00 2001 From: timerix Date: Fri, 26 Aug 2022 02:05:09 +0600 Subject: [PATCH] compiles but doesnt work --- src/Autoarr/Autoarr.c | 28 ++++++++++++++++++++++++++++ src/Hashtable/Hashtable.c | 3 +++ src/Hashtable/KeyValuePair.c | 6 +++++- src/SearchTree/SearchTree.c | 3 +++ src/String/StringBuilder.c | 5 +++++ src/String/StringBuilder.h | 2 ++ src/base/init.c | 2 ++ src/base/types.c | 30 +++++++++++++++++++++++++++++- src/base/unitype.c | 3 +++ 9 files changed, 80 insertions(+), 2 deletions(-) diff --git a/src/Autoarr/Autoarr.c b/src/Autoarr/Autoarr.c index 8dde7ab..5202b6d 100644 --- a/src/Autoarr/Autoarr.c +++ b/src/Autoarr/Autoarr.c @@ -13,7 +13,35 @@ Autoarr_define(int32) Autoarr_define(uint64) Autoarr_define(int64) +kerepTypeId_define(kerepTypeId_AutoarrChar); +kerepTypeId_define(kerepTypeId_AutoarrBool); +kerepTypeId_define(kerepTypeId_AutoarrFloat32); +kerepTypeId_define(kerepTypeId_AutoarrFloat64); +kerepTypeId_define(kerepTypeId_AutoarrInt8); +kerepTypeId_define(kerepTypeId_AutoarrUInt8); +kerepTypeId_define(kerepTypeId_AutoarrInt16); +kerepTypeId_define(kerepTypeId_AutoarrUInt16); +kerepTypeId_define(kerepTypeId_AutoarrInt32); +kerepTypeId_define(kerepTypeId_AutoarrUInt32); +kerepTypeId_define(kerepTypeId_AutoarrInt64); +kerepTypeId_define(kerepTypeId_AutoarrUInt64); + +kerepTypeId_define(kerepTypeId_AutoarrCharPtr); +kerepTypeId_define(kerepTypeId_AutoarrBoolPtr); +kerepTypeId_define(kerepTypeId_AutoarrFloat32Ptr); +kerepTypeId_define(kerepTypeId_AutoarrFloat64Ptr); +kerepTypeId_define(kerepTypeId_AutoarrInt8Ptr); +kerepTypeId_define(kerepTypeId_AutoarrUInt8Ptr); +kerepTypeId_define(kerepTypeId_AutoarrInt16Ptr); +kerepTypeId_define(kerepTypeId_AutoarrUInt16Ptr); +kerepTypeId_define(kerepTypeId_AutoarrInt32Ptr); +kerepTypeId_define(kerepTypeId_AutoarrUInt32Ptr); +kerepTypeId_define(kerepTypeId_AutoarrInt64Ptr); +kerepTypeId_define(kerepTypeId_AutoarrUInt64Ptr); + Autoarr_define(Unitype) +kerepTypeId_define(kerepTypeId_AutoarrUnitype); +kerepTypeId_define(kerepTypeId_AutoarrUnitypePtr); // right func to clear array of unitype values void __Autoarr_free_Unitype_(Autoarr(Unitype)* ar, bool freePtr){ diff --git a/src/Hashtable/Hashtable.c b/src/Hashtable/Hashtable.c index b659ef5..d68c6c7 100644 --- a/src/Hashtable/Hashtable.c +++ b/src/Hashtable/Hashtable.c @@ -1,5 +1,8 @@ #include "Hashtable.h" +kerepTypeId_define(kerepTypeId_Hashtable); +kerepTypeId_define(kerepTypeId_HashtablePtr); + // amount of rows static const uint16 HT_HEIGHTS[]={17,61,257,1021,4099,16381,65521}; #define HT_HEIN_MIN 0 diff --git a/src/Hashtable/KeyValuePair.c b/src/Hashtable/KeyValuePair.c index 93ad54a..845ead5 100644 --- a/src/Hashtable/KeyValuePair.c +++ b/src/Hashtable/KeyValuePair.c @@ -1,7 +1,11 @@ #include "KeyValuePair.h" -Autoarr_define(KVPair) +kerepTypeId_define(kerepTypeId_KVPair); +kerepTypeId_define(kerepTypeId_KVPairPtr); +Autoarr_define(KVPair) +kerepTypeId_define(kerepTypeId_AutoarrKVPair); +kerepTypeId_define(kerepTypeId_AutoarrKVPairPtr); // proper way to clear a KVP void KVPair_free(KVPair p){ diff --git a/src/SearchTree/SearchTree.c b/src/SearchTree/SearchTree.c index 14a4b4f..18088ab 100644 --- a/src/SearchTree/SearchTree.c +++ b/src/SearchTree/SearchTree.c @@ -1,5 +1,8 @@ #include "SearchTree.h" +kerepTypeId_define(kerepTypeId_STNode); +kerepTypeId_define(kerepTypeId_STNodePtr); + STNode* STNode_create(){ STNode* node=malloc(sizeof(STNode)); node->branches=NULL; diff --git a/src/String/StringBuilder.c b/src/String/StringBuilder.c index 652c9b8..167e916 100644 --- a/src/String/StringBuilder.c +++ b/src/String/StringBuilder.c @@ -1,6 +1,11 @@ #include "StringBuilder.h" Autoarr_define(string) +kerepTypeId_define(kerepTypeId_AutoarrString); +kerepTypeId_define(kerepTypeId_AutoarrStringPtr); + +kerepTypeId_define(kerepTypeId_StringBuilder); +kerepTypeId_define(kerepTypeId_StringBuilderPtr); #define BL_C 32 #define BL_L 1024 diff --git a/src/String/StringBuilder.h b/src/String/StringBuilder.h index bc30f20..50e63a7 100644 --- a/src/String/StringBuilder.h +++ b/src/String/StringBuilder.h @@ -8,6 +8,8 @@ extern "C" { #include "string.h" Autoarr_declare(string) +kerepTypeId_declare(kerepTypeId_AutoarrString); +kerepTypeId_declare(kerepTypeId_AutoarrStringPtr); typedef struct StringBuilder{ Autoarr(string)* compl_bufs; diff --git a/src/base/init.c b/src/base/init.c index cb4c43f..f838c64 100644 --- a/src/base/init.c +++ b/src/base/init.c @@ -90,6 +90,8 @@ void kerepTypeDescriptors_initKerepTypes(){ kerepType_register(Hashtable*, kerepTypeId_HashtablePtr, __Hashtable_free); // StringBuilder + kerepType_register(Autoarr_string, kerepTypeId_AutoarrString, ____Autoarr_free_string); + kerepType_register(Autoarr_string*, kerepTypeId_AutoarrStringPtr, ____Autoarr_free_string); kerepType_register(StringBuilder, kerepTypeId_StringBuilder, __StringBuilder_free); kerepType_register(StringBuilder*, kerepTypeId_StringBuilderPtr, __StringBuilder_free); } diff --git a/src/base/types.c b/src/base/types.c index 1c7a055..6f08596 100644 --- a/src/base/types.c +++ b/src/base/types.c @@ -4,6 +4,34 @@ Autoarr_declare(kerepTypeDescriptor) Autoarr_define(kerepTypeDescriptor) +kerepTypeId_define(kerepTypeId_Null); + +kerepTypeId_define(kerepTypeId_Char); +kerepTypeId_define(kerepTypeId_Bool); +kerepTypeId_define(kerepTypeId_Float32); +kerepTypeId_define(kerepTypeId_Float64); +kerepTypeId_define(kerepTypeId_Int8); +kerepTypeId_define(kerepTypeId_UInt8); +kerepTypeId_define(kerepTypeId_Int16); +kerepTypeId_define(kerepTypeId_UInt16); +kerepTypeId_define(kerepTypeId_Int32); +kerepTypeId_define(kerepTypeId_UInt32); +kerepTypeId_define(kerepTypeId_Int64); +kerepTypeId_define(kerepTypeId_UInt64); + +kerepTypeId_define(kerepTypeId_CharPtr); +kerepTypeId_define(kerepTypeId_BoolPtr); +kerepTypeId_define(kerepTypeId_Float32Ptr); +kerepTypeId_define(kerepTypeId_Float64Ptr); +kerepTypeId_define(kerepTypeId_Int8Ptr); +kerepTypeId_define(kerepTypeId_UInt8Ptr); +kerepTypeId_define(kerepTypeId_Int16Ptr); +kerepTypeId_define(kerepTypeId_UInt16Ptr); +kerepTypeId_define(kerepTypeId_Int32Ptr); +kerepTypeId_define(kerepTypeId_UInt32Ptr); +kerepTypeId_define(kerepTypeId_Int64Ptr); +kerepTypeId_define(kerepTypeId_UInt64Ptr); + // type descriptors are stored here during initialization Autoarr(kerepTypeDescriptor)* __kerepTypeDescriptors=NULL; // here type descriptors are stored when initialization is complited @@ -31,7 +59,7 @@ void __kerepType_register(char* name, int16 size, void (*free_members)(void*)){ .size=size, .free_members=free_members, .id=++kerepTypeId_last - }; + }; dbg(kerepTypeId_last); Autoarr_add(__kerepTypeDescriptors, typeDesc); } diff --git a/src/base/unitype.c b/src/base/unitype.c index 1f18751..005cee5 100644 --- a/src/base/unitype.c +++ b/src/base/unitype.c @@ -1,5 +1,8 @@ #include "base.h" +kerepTypeId_define(kerepTypeId_Unitype); +kerepTypeId_define(kerepTypeId_UnitypePtr); + void Unitype_free(Unitype u){ kerepTypeDescriptor type=kerepTypeDescriptor_get(u.typeId); if(type.free_members)