speed up export table build with hash table

This commit is contained in:
Nikita Smith
2024-11-07 11:54:24 -08:00
parent a5dd35b874
commit 1d42f1bd66
4 changed files with 47 additions and 29 deletions
+8 -2
View File
@@ -1544,8 +1544,14 @@ lnk_build_guard_tables(TP_Context *tp,
lnk_symbol_list_push(scratch.arena, &guard_symbol_list_table[GUARD_FIDS], entry_point_symbol);
// push exports
for (LNK_Export *exp = exptab->name_export_list.first; exp != NULL; exp = exp->next) {
lnk_symbol_list_push(scratch.arena, &guard_symbol_list_table[GUARD_FIDS], exp->symbol);
{
Temp temp = temp_begin(scratch.arena);
KeyValuePair *raw_exports = key_value_pairs_from_hash_table(temp.arena, exptab->name_export_ht);
for (U64 i = 0; i < exptab->name_export_ht->count; ++i) {
LNK_Export *exp = raw_exports[i].value_raw;
lnk_symbol_list_push(scratch.arena, &guard_symbol_list_table[GUARD_FIDS], exp->symbol);
}
scratch_end(temp);
}
// TODO: push noname exports