diff options
| author | ruki <[email protected]> | 2026-01-30 21:00:37 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2026-01-30 21:00:37 +0800 |
| commit | cd457f20862b02da001857ab2bcfb5f1ce97fed5 (patch) | |
| tree | 34692ff6ea45fdf408d92764a5e4c3d8c1a8f2d5 /core/src | |
| parent | 954b1138cb7f346c303dc16bed2c9ad28cf8ce8e (diff) | |
improve format
Diffstat (limited to 'core/src')
| -rw-r--r-- | core/src/xmake/binutils/format.c | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/core/src/xmake/binutils/format.c b/core/src/xmake/binutils/format.c index 17a6ba6f1..6d076a5b1 100644 --- a/core/src/xmake/binutils/format.c +++ b/core/src/xmake/binutils/format.c @@ -34,12 +34,10 @@ */ static tb_bool_t xm_binutils_format_is_pe(tb_stream_ref_t istream, tb_byte_t* first8) { tb_assert_and_check_return_val(istream && first8, tb_false); - if (!((first8[0] == 'M' && first8[1] == 'Z') || (first8[0] == 'Z' && first8[1] == 'M'))) { - return tb_false; - } - tb_bool_t ok = tb_false; do { + tb_check_break((first8[0] == 'M' && first8[1] == 'Z') || (first8[0] == 'Z' && first8[1] == 'M')); + tb_hong_t size = tb_stream_size(istream); if (size > 0 && size < XM_BINUTILS_PE_DOS_STUB_MIN_SIZE + 4) { break; @@ -132,11 +130,6 @@ tb_int_t xm_binutils_format_detect(tb_stream_ref_t istream) { break; } - if (xm_binutils_format_is_pe(istream, p)) { - format = XM_BINUTILS_FORMAT_PE; - break; - } - if (xm_binutils_format_is_elf(p)) { format = XM_BINUTILS_FORMAT_ELF; break; @@ -147,6 +140,11 @@ tb_int_t xm_binutils_format_detect(tb_stream_ref_t istream) { break; } + if (xm_binutils_format_is_pe(istream, p)) { + format = XM_BINUTILS_FORMAT_PE; + break; + } + if (xm_binutils_format_is_coff(p)) { format = XM_BINUTILS_FORMAT_COFF; break; |
