summaryrefslogtreecommitdiff
path: root/core/src
diff options
context:
space:
mode:
authorruki <[email protected]>2026-01-30 21:00:37 +0800
committerruki <[email protected]>2026-01-30 21:00:37 +0800
commitcd457f20862b02da001857ab2bcfb5f1ce97fed5 (patch)
tree34692ff6ea45fdf408d92764a5e4c3d8c1a8f2d5 /core/src
parent954b1138cb7f346c303dc16bed2c9ad28cf8ce8e (diff)
improve format
Diffstat (limited to 'core/src')
-rw-r--r--core/src/xmake/binutils/format.c16
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;