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) {