mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-09-24 02:00:05 +00:00
validate info stream
This commit is contained in:
@@ -1453,10 +1453,9 @@ msf_find_stream(MSF_Context *msf, MSF_StreamNumber sn)
|
||||
}
|
||||
|
||||
internal void
|
||||
msf_release(MSF_Context **msf_ptr)
|
||||
msf_release(MSF_Context *msf)
|
||||
{
|
||||
arena_release((*msf_ptr)->arena);
|
||||
*msf_ptr = 0;
|
||||
arena_release(msf->arena);
|
||||
}
|
||||
|
||||
internal String8List
|
||||
|
||||
@@ -127,7 +127,7 @@ typedef struct
|
||||
////////////////////////////////
|
||||
|
||||
internal MSF_Context * msf_alloc(MSF_UInt page_size, MSF_UInt active_fpm);
|
||||
internal void msf_release(MSF_Context **msf_ptr);
|
||||
internal void msf_release(MSF_Context *msf_ptr);
|
||||
internal MSF_Error msf_build(MSF_Context *msf);
|
||||
internal U64 msf_get_save_size(MSF_Context *msf);
|
||||
internal String8List msf_get_page_data_nodes(Arena *arena, MSF_Context *msf);
|
||||
|
||||
@@ -200,7 +200,8 @@ pdb_hash_table_grow(PDB_HashTable *ht, U64 new_capacity)
|
||||
for (U32 i = 0; i < ht->max; ++i) {
|
||||
if (bit_array_is_bit_set(ht->present_bits, i)) {
|
||||
PDB_HashTableBucket *bucket = &ht->bucket_arr[i];
|
||||
B32 is_set = pdb_hash_table_try_set(&new_ht, bucket->key, bucket->value);
|
||||
PDB_HashTableBucket *is_set = pdb_hash_table_try_set(&new_ht, bucket->key, bucket->value);
|
||||
is_set->insert_idx = bucket->insert_idx;
|
||||
Assert(is_set);
|
||||
}
|
||||
}
|
||||
@@ -215,11 +216,11 @@ pdb_hash_table_hash(String8 key)
|
||||
return (U16)pdb_hash_v1(key);
|
||||
}
|
||||
|
||||
internal B32
|
||||
internal PDB_HashTableBucket *
|
||||
pdb_hash_table_try_set(PDB_HashTable *ht, String8 key, String8 value)
|
||||
{
|
||||
ProfBeginFunction();
|
||||
B32 is_set = 0;
|
||||
PDB_HashTableBucket *is_set = 0;
|
||||
U32 best_ibucket = pdb_hash_table_hash(key) % ht->max;
|
||||
U32 ibucket = best_ibucket;
|
||||
do {
|
||||
@@ -234,7 +235,7 @@ pdb_hash_table_try_set(PDB_HashTable *ht, String8 key, String8 value)
|
||||
bit_array_set_bit32(ht->deleted_bits, ibucket, 0);
|
||||
|
||||
ht->count += 1;
|
||||
is_set = 1;
|
||||
is_set = bucket;
|
||||
break;
|
||||
}
|
||||
ibucket = (ibucket + 1) % ht->max;
|
||||
@@ -255,7 +256,7 @@ pdb_hash_table_set(PDB_HashTable *ht, String8 key, String8 value)
|
||||
}
|
||||
|
||||
// set new item
|
||||
B32 is_set = pdb_hash_table_try_set(ht, key, value);
|
||||
PDB_HashTableBucket *is_set = pdb_hash_table_try_set(ht, key, value);
|
||||
AssertAlways(is_set);
|
||||
|
||||
ProfEnd();
|
||||
@@ -1696,11 +1697,10 @@ gsi_alloc(void)
|
||||
}
|
||||
|
||||
internal void
|
||||
gsi_release(PDB_GsiContext **gsi_ptr)
|
||||
gsi_release(PDB_GsiContext *gsi)
|
||||
{
|
||||
ProfBeginFunction();
|
||||
arena_release((*gsi_ptr)->arena);
|
||||
*gsi_ptr = NULL;
|
||||
arena_release(gsi->arena);
|
||||
ProfEnd();
|
||||
}
|
||||
|
||||
@@ -2238,12 +2238,11 @@ psi_build(TP_Context *tp, PDB_PsiContext *psi, MSF_Context *msf, MSF_StreamNumbe
|
||||
}
|
||||
|
||||
internal void
|
||||
psi_release(PDB_PsiContext **psi_ptr)
|
||||
psi_release(PDB_PsiContext *psi)
|
||||
{
|
||||
ProfBeginFunction();
|
||||
gsi_release(&(*psi_ptr)->gsi);
|
||||
arena_release((*psi_ptr)->arena);
|
||||
*psi_ptr = NULL;
|
||||
gsi_release(psi->gsi);
|
||||
arena_release(psi->arena);
|
||||
ProfEnd();
|
||||
}
|
||||
|
||||
@@ -2916,11 +2915,10 @@ dbi_build(TP_Context *tp, PDB_DbiContext *dbi, MSF_Context *msf, MSF_StreamNumbe
|
||||
}
|
||||
|
||||
internal void
|
||||
dbi_release(PDB_DbiContext **dbi_ptr)
|
||||
dbi_release(PDB_DbiContext *dbi)
|
||||
{
|
||||
ProfBeginFunction();
|
||||
arena_release((*dbi_ptr)->arena);
|
||||
*dbi_ptr = 0;
|
||||
arena_release(dbi->arena);
|
||||
ProfEnd();
|
||||
}
|
||||
|
||||
@@ -3077,18 +3075,13 @@ pdb_alloc(U64 page_size, COFF_MachineType machine, COFF_TimeStamp time_stamp, U3
|
||||
}
|
||||
|
||||
internal void
|
||||
pdb_release(PDB_Context **pdb_ptr)
|
||||
pdb_release(PDB_Context *pdb)
|
||||
{
|
||||
ProfBeginFunction();
|
||||
PDB_Context *pdb = *pdb_ptr;
|
||||
msf_release(&pdb->msf);
|
||||
dbi_release(&pdb->dbi);
|
||||
gsi_release(&pdb->gsi);
|
||||
for (U64 i = 1; i < ArrayCount(pdb->type_servers); ++i) {
|
||||
pdb_type_server_release(&pdb->type_servers[i]);
|
||||
}
|
||||
dbi_release(pdb->dbi);
|
||||
gsi_release(pdb->gsi);
|
||||
for (U64 i = 1; i < ArrayCount(pdb->type_servers); ++i) { pdb_type_server_release(&pdb->type_servers[i]); }
|
||||
arena_release(pdb->arena);
|
||||
*pdb_ptr = 0;
|
||||
ProfEnd();
|
||||
}
|
||||
|
||||
|
||||
@@ -332,7 +332,7 @@ typedef struct
|
||||
// PDB
|
||||
|
||||
internal PDB_Context * pdb_alloc(U64 page_size, COFF_MachineType machine, COFF_TimeStamp time_stamp, U32 age, Guid guid);
|
||||
internal void pdb_release(PDB_Context **pdb_ptr);
|
||||
internal void pdb_release(PDB_Context *pdb);
|
||||
internal void pdb_build(TP_Context *tp, TP_Arena *pool_temp, PDB_Context *pdb, CV_StringHashTable string_ht, B32 build_gsi, B32 is_stripped);
|
||||
internal void pdb_set_machine(PDB_Context *pdb, COFF_MachineType machine);
|
||||
internal void pdb_set_guid(PDB_Context *pdb, Guid guid);
|
||||
@@ -359,7 +359,7 @@ internal PDB_SrcError pdb_add_src(PDB_InfoContext *info, MSF_Context *msf,
|
||||
|
||||
internal PDB_GsiContext * gsi_alloc(void);
|
||||
internal void gsi_build(TP_Context *tp, PDB_GsiContext *gsi, MSF_Context *msf, MSF_StreamNumber gsi_sn, MSF_StreamNumber symbols_sn);
|
||||
internal void gsi_release(PDB_GsiContext **gsi_ptr);
|
||||
internal void gsi_release(PDB_GsiContext *gsi);
|
||||
internal void gsi_write_build_result(TP_Context *tp, PDB_GsiBuildResult build, MSF_Context *msf, MSF_StreamNumber sn, MSF_StreamNumber symbols_sn);
|
||||
internal PDB_GsiBuildResult gsi_build_ex(TP_Context *tp, Arena *arena, PDB_GsiContext *gsi, U64 symbol_data_base, B32 export_symbol_ptr_arr, U64 msf_page_size);
|
||||
internal U32 gsi_hash(PDB_GsiContext *gsi, String8 input);
|
||||
@@ -373,7 +373,7 @@ internal CV_SymbolNode * gsi_search(PDB_GsiContext *gsi, CV_Symbol *symbol);
|
||||
|
||||
internal PDB_PsiContext * psi_alloc(void);
|
||||
internal void psi_build(TP_Context *tp, PDB_PsiContext *psi, MSF_Context *msf, MSF_StreamNumber sn, MSF_StreamNumber symbols_sn);
|
||||
internal void psi_release(PDB_PsiContext **psi_ptr);
|
||||
internal void psi_release(PDB_PsiContext *psi);
|
||||
internal CV_SymbolNode * psi_push(PDB_PsiContext *psi, CV_Pub32Flags flags, U32 offset, U16 isect, String8 name);
|
||||
|
||||
// TODO:
|
||||
@@ -385,7 +385,7 @@ internal CV_SymbolNode * psi_push(PDB_PsiContext *psi, CV_Pub32Flags flags, U32
|
||||
|
||||
internal PDB_DbiContext * dbi_alloc(COFF_MachineType machine, U32 age);
|
||||
internal void dbi_build(TP_Context *tp, PDB_DbiContext *dbi, MSF_Context *msf, MSF_StreamNumber dbi_sn, CV_StringHashTable string_ht, B32 is_stripped);
|
||||
internal void dbi_release(PDB_DbiContext **dbi_ptr);
|
||||
internal void dbi_release(PDB_DbiContext *dbi);
|
||||
internal PDB_DbiModule * dbi_push_module(PDB_DbiContext *dbi, String8 obj_path, String8 lib_path);
|
||||
internal String8 dbi_module_read_symbol_data(Arena *arena, MSF_Context *msf, PDB_DbiModule *mod);
|
||||
internal String8 dbi_module_read_c11_data(Arena *arena, MSF_Context *msf, PDB_DbiModule *mod);
|
||||
@@ -409,7 +409,7 @@ internal String8 pdb_data_from_hash_table(Arena *arena, PDB_Hash
|
||||
internal void pdb_hash_table_set(PDB_HashTable *ht, String8 key, String8 value);
|
||||
internal B32 pdb_hash_table_get(PDB_HashTable *ht, String8 key, String8 *value_out);
|
||||
internal void pdb_hash_table_delete(PDB_HashTable *ht, String8 key);
|
||||
internal B32 pdb_hash_table_try_set(PDB_HashTable *ht, String8 key, String8 value);
|
||||
internal PDB_HashTableBucket * pdb_hash_table_try_set(PDB_HashTable *ht, String8 key, String8 value);
|
||||
internal B32 pdb_hash_table_is_present(PDB_HashTable *ht, U32 k);
|
||||
internal B32 pdb_hash_table_is_deleted(PDB_HashTable *ht, U32 k);
|
||||
internal U32 pdb_hash_table_hash(String8 key);
|
||||
|
||||
Reference in New Issue
Block a user