mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-08-06 22:08:41 +00:00
COFF parser fixes
This commit is contained in:
+6
-5
@@ -953,9 +953,9 @@ coff_parse_archive_member_header(String8 data, U64 offset, B32 is_regular_archiv
|
|||||||
size = str8_skip_chop_whitespace(size);
|
size = str8_skip_chop_whitespace(size);
|
||||||
|
|
||||||
header_out->name = name;
|
header_out->name = name;
|
||||||
header_out->time_stamp = s32_from_str8(date, 10);
|
header_out->time_stamp = u32_from_str8(date, 10);
|
||||||
header_out->user_id = s32_from_str8(user_id, 10);
|
header_out->user_id = u32_from_str8(user_id, 10);
|
||||||
header_out->group_id = s32_from_str8(group_id, 10);
|
header_out->group_id = u32_from_str8(group_id, 10);
|
||||||
header_out->mode = mode;
|
header_out->mode = mode;
|
||||||
header_out->is_end_correct = str8_match(end, end_magic, 0);
|
header_out->is_end_correct = str8_match(end, end_magic, 0);
|
||||||
header_out->data_range = rng_1u64(cursor, cursor + u32_from_str8(size, 10));
|
header_out->data_range = rng_1u64(cursor, cursor + u32_from_str8(size, 10));
|
||||||
@@ -1028,8 +1028,9 @@ coff_parse_first_archive_member(COFF_ArchiveMember *member)
|
|||||||
internal COFF_ArchiveSecondMember
|
internal COFF_ArchiveSecondMember
|
||||||
coff_parse_second_archive_member(COFF_ArchiveMember *member)
|
coff_parse_second_archive_member(COFF_ArchiveMember *member)
|
||||||
{
|
{
|
||||||
Assert(str8_match(member->header.name, str8_lit("/"), 0));
|
COFF_ArchiveSecondMember result = {0};
|
||||||
|
|
||||||
|
if (str8_match(member->header.name, str8_lit("/"), 0)) {
|
||||||
U64 cursor = 0;
|
U64 cursor = 0;
|
||||||
|
|
||||||
U32 member_count = 0;
|
U32 member_count = 0;
|
||||||
@@ -1055,7 +1056,6 @@ coff_parse_second_archive_member(COFF_ArchiveMember *member)
|
|||||||
U16 *symbol_indices = (U16 *)raw_indices.str;
|
U16 *symbol_indices = (U16 *)raw_indices.str;
|
||||||
U64 symbol_index_count = raw_indices.size / sizeof(symbol_indices[0]);
|
U64 symbol_index_count = raw_indices.size / sizeof(symbol_indices[0]);
|
||||||
|
|
||||||
COFF_ArchiveSecondMember result = {0};
|
|
||||||
result.member_count = member_count;
|
result.member_count = member_count;
|
||||||
result.symbol_count = symbol_count;
|
result.symbol_count = symbol_count;
|
||||||
result.member_offsets = member_offsets;
|
result.member_offsets = member_offsets;
|
||||||
@@ -1063,6 +1063,7 @@ coff_parse_second_archive_member(COFF_ArchiveMember *member)
|
|||||||
result.symbol_indices = symbol_indices;
|
result.symbol_indices = symbol_indices;
|
||||||
result.symbol_index_count = symbol_index_count;
|
result.symbol_index_count = symbol_index_count;
|
||||||
result.string_table = str8_substr(member->data, string_table_range);
|
result.string_table = str8_substr(member->data, string_table_range);
|
||||||
|
}
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user