mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-08-06 13:58:40 +00:00
bugfix incomplete type resolution hash table lookup
This commit is contained in:
@@ -437,8 +437,10 @@ rdim_local_resolve_incomplete_types(RDIM_TypeChunkList *types)
|
|||||||
|
|
||||||
Temp scratch = scratch_begin(0,0);
|
Temp scratch = scratch_begin(0,0);
|
||||||
|
|
||||||
|
U64 total_type_count = types->total_count + 1;
|
||||||
|
|
||||||
ProfBegin("Build Hash Table");
|
ProfBegin("Build Hash Table");
|
||||||
RDIM_Type **name_ht = rdim_push_array(scratch.arena, RDIM_Type *, types->total_count + 1);
|
RDIM_Type **name_ht = rdim_push_array(scratch.arena, RDIM_Type *, total_type_count);
|
||||||
for(RDIM_TypeChunkNode *chunk = types->first; chunk != 0; chunk = chunk->next)
|
for(RDIM_TypeChunkNode *chunk = types->first; chunk != 0; chunk = chunk->next)
|
||||||
{
|
{
|
||||||
for(RDI_U64 i = 0; i < chunk->count; i += 1)
|
for(RDI_U64 i = 0; i < chunk->count; i += 1)
|
||||||
@@ -474,7 +476,7 @@ rdim_local_resolve_incomplete_types(RDIM_TypeChunkList *types)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
slot = (slot + 1) % types->total_count;
|
slot = (slot + 1) % total_type_count;
|
||||||
} while (slot != best_slot);
|
} while (slot != best_slot);
|
||||||
|
|
||||||
if(name_ht[slot] == 0)
|
if(name_ht[slot] == 0)
|
||||||
@@ -487,7 +489,7 @@ rdim_local_resolve_incomplete_types(RDIM_TypeChunkList *types)
|
|||||||
ProfEnd();
|
ProfEnd();
|
||||||
|
|
||||||
ProfBegin("Make Fwd Map");
|
ProfBegin("Make Fwd Map");
|
||||||
RDIM_Type **fwd_map = rdim_push_array(scratch.arena, RDIM_Type *, types->total_count + 1);
|
RDIM_Type **fwd_map = rdim_push_array(scratch.arena, RDIM_Type *, total_type_count);
|
||||||
for(RDIM_TypeChunkNode *chunk = types->first; chunk != 0; chunk = chunk->next)
|
for(RDIM_TypeChunkNode *chunk = types->first; chunk != 0; chunk = chunk->next)
|
||||||
{
|
{
|
||||||
for(RDI_U64 i = 0; i < chunk->count; i += 1)
|
for(RDI_U64 i = 0; i < chunk->count; i += 1)
|
||||||
@@ -525,6 +527,8 @@ rdim_local_resolve_incomplete_types(RDIM_TypeChunkList *types)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
slot = (slot + 1) % total_type_count;
|
||||||
} while(slot != best_slot);
|
} while(slot != best_slot);
|
||||||
|
|
||||||
if(match)
|
if(match)
|
||||||
|
|||||||
Reference in New Issue
Block a user