mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-07-31 03:10:03 +00:00
plug in dwarf converter to radbin; hook up to both rdi generation & breakpad generation; radbin exe -> pdb / elf -> dwarf inferences; cleanup / unification passes
This commit is contained in:
+12
-8
@@ -26,6 +26,10 @@ bucket_list_pop(BucketList *list)
|
||||
|
||||
////////////////////////////////
|
||||
|
||||
#define XXH_STATIC_LINKING_ONLY
|
||||
#include "third_party/xxHash/xxhash.c"
|
||||
#include "third_party/xxHash/xxhash.h"
|
||||
|
||||
internal U64
|
||||
hash_table_hasher(String8 string)
|
||||
{
|
||||
@@ -47,7 +51,7 @@ hash_table_purge(HashTable *ht)
|
||||
{
|
||||
// reset key count
|
||||
ht->count = 0;
|
||||
|
||||
|
||||
// concat buckets
|
||||
for (U64 ibucket = 0; ibucket < ht->cap; ++ibucket) {
|
||||
bucket_list_concat_in_place(&ht->free_buckets, &ht->buckets[ibucket]);
|
||||
@@ -339,20 +343,20 @@ internal U64Array
|
||||
remove_duplicates_u64_array(Arena *arena, U64Array arr)
|
||||
{
|
||||
Temp scratch = scratch_begin(&arena, 1);
|
||||
|
||||
|
||||
HashTable *ht = hash_table_init(scratch.arena, ((U64)(F64)arr.count * 0.5));
|
||||
|
||||
|
||||
for (U64 i = 0; i < arr.count; ++i) {
|
||||
KeyValuePair *is_present = hash_table_search_u64(ht, arr.v[i]);
|
||||
if (!is_present) {
|
||||
hash_table_push_u64_raw(scratch.arena, ht, arr.v[i], 0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
U64Array result = {0};
|
||||
result.count = ht->count;
|
||||
result.v = keys_from_hash_table_u64(arena, ht);
|
||||
|
||||
|
||||
scratch_end(scratch);
|
||||
return result;
|
||||
}
|
||||
@@ -361,10 +365,10 @@ internal String8List
|
||||
remove_duplicates_str8_list(Arena *arena, String8List list)
|
||||
{
|
||||
Temp scratch = scratch_begin(&arena, 1);
|
||||
|
||||
|
||||
String8List result = {0};
|
||||
HashTable *ht = hash_table_init(scratch.arena, list.node_count);
|
||||
|
||||
|
||||
for (String8Node *node = list.first; node != 0; node = node->next) {
|
||||
KeyValuePair *is_present = hash_table_search_string(ht, node->string);
|
||||
if (!is_present) {
|
||||
@@ -372,7 +376,7 @@ remove_duplicates_str8_list(Arena *arena, String8List list)
|
||||
str8_list_push(arena, &result, node->string);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
scratch_end(scratch);
|
||||
return result;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user