From 6d8a580724e937c4e3d26ab83ce4efb3c2e90611 Mon Sep 17 00:00:00 2001 From: Musa Mahmood Date: Thu, 27 Nov 2025 13:36:48 -0500 Subject: [PATCH] Fixup missing code in Arena.cpp --- lib/Base/Arena.cpp | 5 ++++- lib/Base/Arena_Table.cpp | 8 -------- lib/Base/Base_Thread_Context.cpp | 12 ------------ src/Base_Entry_Point.cpp | 7 ++----- 4 files changed, 6 insertions(+), 26 deletions(-) diff --git a/lib/Base/Arena.cpp b/lib/Base/Arena.cpp index 196a225..3ef5a8a 100644 --- a/lib/Base/Arena.cpp +++ b/lib/Base/Arena.cpp @@ -60,7 +60,7 @@ bool arena_commit_first_pages (Arena* arena, s64 commit_size, s64 start_offset) if (commit_size <= 0 || start_offset < 0) { return false; } - // bool success = true; + u8* final_address = Align(arena->memory_base + commit_size + start_offset, arena->alignment); s64 commit_size_final = (s64)(final_address - arena->memory_base); @@ -91,11 +91,14 @@ Arena* bootstrap_arena (Arena_Reserve new_reserve, s32 default_commit_page_count memcpy(arena_ptr, &new_arena, sizeof(Arena)); arena_ptr->current_point = arena_start(arena_ptr); + arena_set_bootstrap_flag(arena_ptr); + return arena_ptr; } void arena_clear_flags (Arena* arena) { arena->flags = Arena_Flags::None; } void arena_set_bootstrap_flag (Arena* arena) { arena->flags |= Arena_Flags::Is_Bootstrapped; } +bool arena_is_bootstrapped (Arena* arena) { return (bool)(arena->flags & Arena_Flags::Is_Bootstrapped); } // void arena_set_secure_flag (Arena* arena) { arena->flags |= Arena_Flags::Secure_Arena; } void arena_reset_keeping_memory (Arena* arena) { diff --git a/lib/Base/Arena_Table.cpp b/lib/Base/Arena_Table.cpp index da70dd4..9d53af1 100644 --- a/lib/Base/Arena_Table.cpp +++ b/lib/Base/Arena_Table.cpp @@ -7,14 +7,6 @@ global Arena_Table* arena_table; -// global b64 arena_tables_initialized = false; -// global std::mutex arena_table_mutex; -// global s32 arenas_in_flight_count[6]; -// global Array arena_free_table[6]; -// #if BUILD_DEBUG -// global Array arenas_in_flight[6]; -// #endif - // Only call once from main thread! void initialize_arena_table (Allocator allocator) { Assert(arena_table != nullptr); diff --git a/lib/Base/Base_Thread_Context.cpp b/lib/Base/Base_Thread_Context.cpp index 1a0a03e..432ac36 100644 --- a/lib/Base/Base_Thread_Context.cpp +++ b/lib/Base/Base_Thread_Context.cpp @@ -49,18 +49,6 @@ struct Push_Arena { } }; -// Thread-local allocators: - -// Start from w32_entry_point_caller -> -// see main_thread_base_entry_point -// //- rjf: set up thread context - // TCTX *tctx = tctx_alloc(); - // tctx_select(tctx); - // See: tctx_alloc(void) - - // Let's do arenas first. - - force_inline void set_thread_context (Thread_Context* new_context) { thread_local_context = new_context; } diff --git a/src/Base_Entry_Point.cpp b/src/Base_Entry_Point.cpp index 95d7f9a..c6135cf 100644 --- a/src/Base_Entry_Point.cpp +++ b/src/Base_Entry_Point.cpp @@ -3,16 +3,11 @@ internal void Main_Entry_Point (int argc, WCHAR **argv); #if OS_WINDOWS #if BUILD_CONSOLE_INTERFACE int wmain(int argc, WCHAR **argv) { - // debug_break(); - Bootstrap_Main_Thread_Context(); - // Win32_Entry_Point(argc, argv); // This might be the problem. Main_Entry_Point(argc, argv); return 0; } #else int wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, int nShowCmd) { - Bootstrap_Main_Thread_Context(); - Win32_Entry_Point(__argc, __wargv); Main_Entry_Point(__argc, __wargv); return 0; } @@ -189,6 +184,8 @@ void ImGui_Application () { string string_literal_example = "Hello, I am a string literal."; internal void Main_Entry_Point (int argc, WCHAR **argv) { + Bootstrap_Main_Thread_Context(); + Win32_Entry_Point(argc, argv); // This might be the problem. // See: main_thread_base_entry_point temp_reset(); push_allocator(get_temp_allocator());