mirror of
https://github.com/open-goal/jak-project
synced 2026-05-25 15:25:31 -04:00
[decompiler] handle pointer to symbol value, clean up prints on offline test (#1978)
- fix issue described in https://github.com/open-goal/jak-project/issues/1939 - fix `text`, which was manually patched with the wrong offset (was reading the symbol value off by one byte) - clean up some random useless prints - make the offline tests keep trying if there's a comparison error, clean up the output a bit so the diffs are all at the end.
This commit is contained in:
@@ -143,8 +143,8 @@ static uint32_t c_symlink2(LinkedObjectFile& f,
|
||||
|
||||
ASSERT((code_value & 0xffff) == 0 || (code_value & 0xffff) == 0xffff);
|
||||
ASSERT(kind == SymbolLinkKind::SYMBOL);
|
||||
// ASSERT(false); // this case does not occur in V2/V4. It does in V3.
|
||||
f.symbol_link_offset(seg_id, code_ptr_offset - initial_offset, name);
|
||||
f.symbol_link_offset(seg_id, code_ptr_offset - initial_offset, name,
|
||||
(code_value & 0xffff) == 0xffff);
|
||||
}
|
||||
|
||||
} while (data.at(link_ptr_offset));
|
||||
@@ -197,9 +197,11 @@ static uint32_t c_symlink3(LinkedObjectFile& f,
|
||||
|
||||
f.symbol_link_word(seg, code_ptr - initial_offset, name, word_kind);
|
||||
} else {
|
||||
u16 lower = code_value & 0xffff;
|
||||
ASSERT(lower == 0 || lower == 0xffff);
|
||||
f.stats.v3_symbol_link_offset++;
|
||||
ASSERT(kind == SymbolLinkKind::SYMBOL);
|
||||
f.symbol_link_offset(seg, code_ptr - initial_offset, name);
|
||||
f.symbol_link_offset(seg, code_ptr - initial_offset, name, lower == 0xffff);
|
||||
}
|
||||
|
||||
} while (data.at(link_ptr));
|
||||
|
||||
Reference in New Issue
Block a user