mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-08-06 13:58:40 +00:00
move delay load helper to mscrt layer
This commit is contained in:
+1
-7
@@ -1729,13 +1729,7 @@ lnk_build_link_context(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config)
|
|||||||
} break;
|
} break;
|
||||||
case State_PushDllHelperUndefSymbol: {
|
case State_PushDllHelperUndefSymbol: {
|
||||||
ProfBegin("Push Dll Helper Undef Symbol");
|
ProfBegin("Push Dll Helper Undef Symbol");
|
||||||
|
delay_load_helper_name = mscrt_delay_load_helper_name_from_machine(config->machine);
|
||||||
switch (config->machine) {
|
|
||||||
case COFF_MachineType_X86: delay_load_helper_name = str8_cstring(MSCRT_DELAY_LOAD_HELPER2_X86_SYMBOL_NAME); break;
|
|
||||||
case COFF_MachineType_X64: delay_load_helper_name = str8_cstring(MSCRT_DELAY_LOAD_HELPER2_SYMBOL_NAME); break;
|
|
||||||
default: { NotImplemented; } break;
|
|
||||||
}
|
|
||||||
|
|
||||||
str8_list_push(scratch.arena, &include_symbol_list, delay_load_helper_name);
|
str8_list_push(scratch.arena, &include_symbol_list, delay_load_helper_name);
|
||||||
ProfEnd();
|
ProfEnd();
|
||||||
} break;
|
} break;
|
||||||
|
|||||||
@@ -1,6 +1,19 @@
|
|||||||
// Copyright (c) Epic Games Tools
|
// Copyright (c) Epic Games Tools
|
||||||
// Licensed under the MIT license (https://opensource.org/license/mit/)
|
// Licensed under the MIT license (https://opensource.org/license/mit/)
|
||||||
|
|
||||||
|
internal String8
|
||||||
|
mscrt_delay_load_helper_name_from_machine(COFF_MachineType machine)
|
||||||
|
{
|
||||||
|
String8 delay_load_helper_name = str8_zero();
|
||||||
|
switch (machine) {
|
||||||
|
case COFF_MachineType_Unknown: break;
|
||||||
|
case COFF_MachineType_X86: delay_load_helper_name = str8_cstring(MSCRT_DELAY_LOAD_HELPER2_X86_SYMBOL_NAME); break;
|
||||||
|
case COFF_MachineType_X64: delay_load_helper_name = str8_cstring(MSCRT_DELAY_LOAD_HELPER2_SYMBOL_NAME); break;
|
||||||
|
default: { NotImplemented; } break;
|
||||||
|
}
|
||||||
|
return delay_load_helper_name;
|
||||||
|
}
|
||||||
|
|
||||||
internal U64
|
internal U64
|
||||||
mscrt_parse_func_info(Arena *arena,
|
mscrt_parse_func_info(Arena *arena,
|
||||||
String8 raw_data,
|
String8 raw_data,
|
||||||
|
|||||||
@@ -343,6 +343,10 @@ typedef struct MSCRT_ParsedFuncInfoV4
|
|||||||
MSCRT_IP2State32V4 ip2state_map;
|
MSCRT_IP2State32V4 ip2state_map;
|
||||||
} MSCRT_ParsedFuncInfoV4;
|
} MSCRT_ParsedFuncInfoV4;
|
||||||
|
|
||||||
|
//- Delay Load Helper
|
||||||
|
|
||||||
|
internal String8 mscrt_delay_load_helper_name_from_machine(COFF_MachineType machine);
|
||||||
|
|
||||||
//- Exception info < v4
|
//- Exception info < v4
|
||||||
|
|
||||||
internal U64 mscrt_parse_func_info(Arena *arena, String8 raw_data, U64 section_count, COFF_SectionHeader *sections, U64 off, MSCRT_FuncInfo *func_info);
|
internal U64 mscrt_parse_func_info(Arena *arena, String8 raw_data, U64 section_count, COFF_SectionHeader *sections, U64 off, MSCRT_FuncInfo *func_info);
|
||||||
|
|||||||
Reference in New Issue
Block a user