From d6113a5417485ffc8d73a8746e18282f914a30b5 Mon Sep 17 00:00:00 2001 From: zzy <2450266535@qq.com> Date: Wed, 19 Aug 2026 21:42:06 +0800 Subject: [PATCH] =?UTF-8?q?stage0=20printf=E7=9A=84=E6=A0=BC=E5=BC=8F?= =?UTF-8?q?=E5=8C=96=E7=BB=9F=E4=B8=80=20=E5=B1=95=E5=BC=80strdup?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- stage0/spl_disasm.c | 8 ++++---- stage0/spl_vm.c | 5 ++++- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/stage0/spl_disasm.c b/stage0/spl_disasm.c index 6e50728..58c2679 100644 --- a/stage0/spl_disasm.c +++ b/stage0/spl_disasm.c @@ -59,14 +59,14 @@ int main(int argc, const char **argv) { /* annotate jumps / calls */ if (ins->opcode == SPL_JMP || ins->opcode == SPL_BZ || ins->opcode == SPL_BNZ) { - long long target = (long long)i + 1 + (long long)ins->imm; - printf(" ; -> %zd", target); + spl_vm_val_t target = i + 1 + ins->imm; + printf(" ; -> %zu", target); } else if (ins->opcode == SPL_CALL) { - printf(" ; nargs=%zd, from stack", (long long)ins->imm); + printf(" ; nargs=%zu, from stack", ins->imm); } else if (ins->opcode == SPL_CALLI) { printf(" ; indirect call"); } else if (ins->opcode == SPL_GADDR) { - printf(" ; gdata[%zd]", (long long)ins->imm); + printf(" ; gdata[%zu]", ins->imm); } printf("\n"); } diff --git a/stage0/spl_vm.c b/stage0/spl_vm.c index c208f36..2f7633b 100644 --- a/stage0/spl_vm.c +++ b/stage0/spl_vm.c @@ -599,7 +599,10 @@ void spl_vm_add_breakpoint_fn(spl_vm_t *vm, const char *name) { for (usize i = 0; i < vec_size(vm->fn_breakpoints); i++) if (strcmp(vm->fn_breakpoints.data[i], name) == 0) return; - vec_push(vm->fn_breakpoints, strdup(name)); + char *cpname = malloc(strlen(name) + 1); + Assert(cpname != NULL); + strcpy(cpname, name); + vec_push(vm->fn_breakpoints, cpname); } void spl_vm_clear_breakpoints(spl_vm_t *vm) {