Fixup missing code in Arena.cpp
This commit is contained in:
parent
1c8481cb86
commit
6d8a580724
@ -60,7 +60,7 @@ bool arena_commit_first_pages (Arena* arena, s64 commit_size, s64 start_offset)
|
|||||||
if (commit_size <= 0 || start_offset < 0) {
|
if (commit_size <= 0 || start_offset < 0) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
// bool success = true;
|
|
||||||
u8* final_address = Align<u8*>(arena->memory_base + commit_size + start_offset,
|
u8* final_address = Align<u8*>(arena->memory_base + commit_size + start_offset,
|
||||||
arena->alignment);
|
arena->alignment);
|
||||||
s64 commit_size_final = (s64)(final_address - arena->memory_base);
|
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));
|
memcpy(arena_ptr, &new_arena, sizeof(Arena));
|
||||||
arena_ptr->current_point = arena_start(arena_ptr);
|
arena_ptr->current_point = arena_start(arena_ptr);
|
||||||
|
|
||||||
|
arena_set_bootstrap_flag(arena_ptr);
|
||||||
|
|
||||||
return arena_ptr;
|
return arena_ptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
void arena_clear_flags (Arena* arena) { arena->flags = Arena_Flags::None; }
|
void arena_clear_flags (Arena* arena) { arena->flags = Arena_Flags::None; }
|
||||||
void arena_set_bootstrap_flag (Arena* arena) { arena->flags |= Arena_Flags::Is_Bootstrapped; }
|
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_set_secure_flag (Arena* arena) { arena->flags |= Arena_Flags::Secure_Arena; }
|
||||||
|
|
||||||
void arena_reset_keeping_memory (Arena* arena) {
|
void arena_reset_keeping_memory (Arena* arena) {
|
||||||
|
|||||||
@ -7,14 +7,6 @@
|
|||||||
|
|
||||||
global Arena_Table* arena_table;
|
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*> arena_free_table[6];
|
|
||||||
// #if BUILD_DEBUG
|
|
||||||
// global Array<Arena*> arenas_in_flight[6];
|
|
||||||
// #endif
|
|
||||||
|
|
||||||
// Only call once from main thread!
|
// Only call once from main thread!
|
||||||
void initialize_arena_table (Allocator allocator) {
|
void initialize_arena_table (Allocator allocator) {
|
||||||
Assert(arena_table != nullptr);
|
Assert(arena_table != nullptr);
|
||||||
|
|||||||
@ -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) {
|
force_inline void set_thread_context (Thread_Context* new_context) {
|
||||||
thread_local_context = new_context;
|
thread_local_context = new_context;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -3,16 +3,11 @@ internal void Main_Entry_Point (int argc, WCHAR **argv);
|
|||||||
#if OS_WINDOWS
|
#if OS_WINDOWS
|
||||||
#if BUILD_CONSOLE_INTERFACE
|
#if BUILD_CONSOLE_INTERFACE
|
||||||
int wmain(int argc, WCHAR **argv) {
|
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);
|
Main_Entry_Point(argc, argv);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
int wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, int nShowCmd) {
|
int wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, int nShowCmd) {
|
||||||
Bootstrap_Main_Thread_Context();
|
|
||||||
Win32_Entry_Point(__argc, __wargv);
|
|
||||||
Main_Entry_Point(__argc, __wargv);
|
Main_Entry_Point(__argc, __wargv);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -189,6 +184,8 @@ void ImGui_Application () {
|
|||||||
string string_literal_example = "Hello, I am a string literal.";
|
string string_literal_example = "Hello, I am a string literal.";
|
||||||
|
|
||||||
internal void Main_Entry_Point (int argc, WCHAR **argv) {
|
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
|
// See: main_thread_base_entry_point
|
||||||
temp_reset();
|
temp_reset();
|
||||||
push_allocator(get_temp_allocator());
|
push_allocator(get_temp_allocator());
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user