From 50e06f064ab589c099da9407835436b900667231 Mon Sep 17 00:00:00 2001 From: Tenari Date: Tue, 31 Mar 2026 16:39:47 -0500 Subject: [PATCH] move string_chunk to base --- build/.keep | 0 src/base/all.h | 29 +++++++++++++++++++++++++++++ src/base/impl.c | 1 + src/{ => base}/string_chunk.c | 2 +- src/client.c | 1 - src/lib/tui.c | 1 - src/server.c | 1 - src/string_chunk.h | 33 --------------------------------- 8 files changed, 31 insertions(+), 37 deletions(-) create mode 100644 build/.keep rename src/{ => base}/string_chunk.c (99%) delete mode 100644 src/string_chunk.h diff --git a/build/.keep b/build/.keep new file mode 100644 index 0000000..e69de29 diff --git a/src/base/all.h b/src/base/all.h index ca33485..a0bfb5d 100644 --- a/src/base/all.h +++ b/src/base/all.h @@ -632,5 +632,34 @@ fn void tctxLaneBarrierWait(void *broadcast_ptr, u64 broadcast_size, u64 broadca #define LaneSyncu64(pointer, src_lane_idx) tctxLaneBarrierWait((pointer), sizeof(*(pointer)), (src_lane_idx)) #define LaneRange(count) mRangeFromNIdxMCount(LaneIdx(), LaneCount(), (count)) +///// StringChunk stuff +#ifndef STRING_CHUNK_PAYLOAD_SIZE +#define STRING_CHUNK_PAYLOAD_SIZE (64 - sizeof(StringChunk*)) +#endif + +typedef struct StringChunk { + struct StringChunk *next; // essentially a header, followed by a fixed maximum str bytes +} StringChunk; + +typedef struct StringChunkList { + StringChunk* first; + StringChunk* last; + u64 count; + u64 total_size; +} StringChunkList; + +typedef struct StringArena { + Arena a; + StringChunk* first_free_str_chunk; + Mutex mutex; +} StringArena; + +fn StringChunkList allocStringChunkList(StringArena* a, String string); +fn void releaseStringChunkList(StringArena* a, StringChunkList* list); +fn String stringChunkToString(Arena* a, StringChunkList list); +fn void stringChunkListAppend(StringArena* a, StringChunkList* list, String string); +fn void stringChunkListDeleteLast(StringArena* a, StringChunkList* list); +fn StringChunkList stringChunkListInit(StringArena* a); +fn void stringChunkCopyToBuffer(StringChunkList* list, u8* buffer, u32 len); #endif// BASE_ALL_H diff --git a/src/base/impl.c b/src/base/impl.c index a01a259..b2c13fd 100644 --- a/src/base/impl.c +++ b/src/base/impl.c @@ -8,5 +8,6 @@ #include "string.c" #include "tctx.c" #include "thread.c" +#include "string_chunk.c" #endif // BASE_IMPL_C diff --git a/src/string_chunk.c b/src/base/string_chunk.c similarity index 99% rename from src/string_chunk.c rename to src/base/string_chunk.c index 5e83cbf..de25a55 100644 --- a/src/string_chunk.c +++ b/src/base/string_chunk.c @@ -1,4 +1,4 @@ -#include "string_chunk.h" +#include "all.h" fn StringChunkList allocStringChunkList(StringArena* a, String string) { StringChunkList result = {0}; diff --git a/src/client.c b/src/client.c index ec7c0a6..f833e5b 100644 --- a/src/client.c +++ b/src/client.c @@ -10,7 +10,6 @@ #include "base/impl.c" #include "lib/network.c" #include "render.c" -#include "string_chunk.c" //#include "assets/asset1.h" //#include "assets/asset2.h" //#include "assets/asset3.h" diff --git a/src/lib/tui.c b/src/lib/tui.c index 2b10d8c..cba2a4f 100644 --- a/src/lib/tui.c +++ b/src/lib/tui.c @@ -1,5 +1,4 @@ #include "../base/all.h" -#include "../string_chunk.h" #include #include #include diff --git a/src/server.c b/src/server.c index 5e7a155..95d042f 100644 --- a/src/server.c +++ b/src/server.c @@ -14,7 +14,6 @@ #define NET_OUTGOING_MESSAGE_QUEUE_LEN 64 #include "lib/network.c" #include "render.c" -#include "string_chunk.c" ///// CONSTANTS #define MAX_THINGS (2<<18) diff --git a/src/string_chunk.h b/src/string_chunk.h deleted file mode 100644 index a9c0baf..0000000 --- a/src/string_chunk.h +++ /dev/null @@ -1,33 +0,0 @@ -#ifndef STRING_CHUNK_H -#define STRING_CHUNK_H - -#include "base/all.h" - -#define STRING_CHUNK_PAYLOAD_SIZE (64 - sizeof(StringChunk*)) - -typedef struct StringChunk { - struct StringChunk *next; // essentially a header, followed by a fixed maximum str bytes -} StringChunk; - -typedef struct StringChunkList { - StringChunk* first; - StringChunk* last; - u64 count; - u64 total_size; -} StringChunkList; - -typedef struct StringArena { - Arena a; - StringChunk* first_free_str_chunk; - Mutex mutex; -} StringArena; - -fn StringChunkList allocStringChunkList(StringArena* a, String string); -fn void releaseStringChunkList(StringArena* a, StringChunkList* list); -fn String stringChunkToString(Arena* a, StringChunkList list); -fn void stringChunkListAppend(StringArena* a, StringChunkList* list, String string); -fn void stringChunkListDeleteLast(StringArena* a, StringChunkList* list); -fn StringChunkList stringChunkListInit(StringArena* a); -fn void stringChunkCopyToBuffer(StringChunkList* list, u8* buffer, u32 len); - -#endif //STRING_CHUNK_H