do full path check for thin objs only

This commit is contained in:
Nikita Smith
2025-07-24 17:32:05 -07:00
parent 955a5f01ca
commit cc6e56eee1
+10 -11
View File
@@ -1434,23 +1434,22 @@ lnk_build_link_context(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config)
next = input->next; next = input->next;
B32 was_obj_loaded = hash_table_search_path_u64(loaded_obj_ht, input->dedup_id, 0); B32 was_obj_loaded = hash_table_search_path_u64(loaded_obj_ht, input->dedup_id, 0);
if (was_obj_loaded) { if (was_obj_loaded) { continue; }
continue;
}
String8 full_path = input->dedup_id.size ? os_full_path_from_path(scratch.arena, input->dedup_id) : str8_zero(); if (input->is_thin) {
B32 was_full_path_used = hash_table_search_path_u64(loaded_obj_ht, full_path, 0); String8 full_path = input->dedup_id.size ? os_full_path_from_path(scratch.arena, input->dedup_id) : str8_zero();
if (was_full_path_used) { B32 was_full_path_used = hash_table_search_path_u64(loaded_obj_ht, full_path, 0);
continue; if (was_full_path_used) { continue; }
if (!str8_match(input->dedup_id, full_path, StringMatchFlag_CaseInsensitive|StringMatchFlag_SlashInsensitive)) {
hash_table_push_path_u64(scratch.arena, loaded_obj_ht, full_path, 0);
}
} }
hash_table_push_path_u64(scratch.arena, loaded_obj_ht, input->dedup_id, 0); hash_table_push_path_u64(scratch.arena, loaded_obj_ht, input->dedup_id, 0);
if (!str8_match(input->dedup_id, full_path, StringMatchFlag_CaseInsensitive|StringMatchFlag_SlashInsensitive)) {
hash_table_push_path_u64(scratch.arena, loaded_obj_ht, full_path, 0);
}
lnk_input_obj_list_push_node(&unique_obj_input_list, input); lnk_input_obj_list_push_node(&unique_obj_input_list, input);
lnk_log(LNK_Log_InputObj, "Input Obj: %S", full_path);
lnk_log(LNK_Log_InputObj, "Input Obj: %S", input->path);
} }
ProfEnd(); ProfEnd();