sort resource pointers

This commit is contained in:
Nikita Smith
2026-02-11 17:20:38 -08:00
parent aa25570904
commit 1e6df05d9f
3 changed files with 57 additions and 8 deletions
+24
View File
@@ -1712,6 +1712,30 @@ pe_make_manifest_resource(Arena *arena, U32 resource_id, String8 manifest_data)
return res;
}
internal PE_ResourcePtrArray
pe_resource_ptr_from_array(Arena *arena, PE_ResourceArray arr)
{
PE_ResourcePtrArray result = {0};
result.count = arr.count;
result.v = push_array(arena, PE_Resource *, arr.count);
for EachIndex(i, arr.count) {
result.v[i] = &arr.v[i];
}
return result;
}
internal PE_ResourceArray
pe_resource_from_ptr_array(Arena *arena, PE_ResourcePtrArray arr)
{
PE_ResourceArray result = {0};
result.count = arr.count;
result.v = push_array(arena, PE_Resource, arr.count);
for EachIndex(i, arr.count) {
result.v[i] = *arr.v[i];
}
return result;
}
////////////////////////////////
//~ Debug Directory
+10
View File
@@ -867,6 +867,13 @@ struct PE_ResourceArray
U64 count;
};
typedef struct PE_ResourcePtrArray PE_ResourcePtrArray;
struct PE_ResourcePtrArray
{
PE_Resource **v;
U64 count;
};
typedef struct PE_ResourceDir PE_ResourceDir;
struct PE_ResourceDir
{
@@ -1097,6 +1104,9 @@ internal PE_ResourceDir * pe_resource_table_from_directory_data(Arena *arena, S
internal String8 pe_make_manifest_resource(Arena *arena, U32 resource_id, String8 manifest_data);
internal PE_ResourcePtrArray pe_resource_ptr_from_array(Arena *arena, PE_ResourceArray arr);
internal PE_ResourceArray pe_resource_from_ptr_array(Arena *arena, PE_ResourcePtrArray arr);
////////////////////////////////
//~ Debug Directory