From a7e44a6d9d5bcabc37e848ef583c56644313a4e2 Mon Sep 17 00:00:00 2001 From: HN026 Date: Fri, 19 Jan 2024 00:03:45 +0530 Subject: [PATCH] converted sdbfmt to setf_asm --- librz/asm/arch/6502/6502dis.c | 26 ++++------ librz/asm/arch/gb/gbdis.c | 21 ++++---- librz/asm/arch/i4004/i4004dis.c | 85 ++++++++------------------------- 3 files changed, 35 insertions(+), 97 deletions(-) diff --git a/librz/asm/arch/6502/6502dis.c b/librz/asm/arch/6502/6502dis.c index c4ecee68d7f..02ba2367125 100644 --- a/librz/asm/arch/6502/6502dis.c +++ b/librz/asm/arch/6502/6502dis.c @@ -143,52 +143,42 @@ static int _6502Disass(ut64 pc, RzAsmOp *op, const ut8 *buf, ut64 len) { int i; for (i = 0; ops[i].name != NULL; i++) { if (ops[i].op == buf[0]) { - char *buf_asm = rz_str_newf("invalid"); int len = ops[i].len; switch (ops[i].len) { case 1: - free(buf_asm); - buf_asm = rz_str_newf("%s", ops[i].name); + rz_asm_op_setf_asm(op, "%s", ops[i].name); break; case 2: if (len > 1) { - free(buf_asm); - buf_asm = rz_str_newf(ops[i].name, buf[1]); + rz_asm_op_setf_asm(op, ops[i].name, buf[1]); } else { - free(buf_asm); - buf_asm = rz_str_newf("truncated"); + rz_asm_op_set_asm(op, "truncated"); len = -1; } break; case 3: if (len > 2) { - free(buf_asm); - buf_asm = rz_str_newf(ops[i].name, buf[1] + 0x100 * buf[2]); + rz_asm_op_setf_asm(op, ops[i].name, buf[1] + 0x100 * buf[2]); } else { - free(buf_asm); - buf_asm = rz_str_newf("truncated"); + rz_asm_op_set_asm(op, "truncated"); len = -1; } break; case 4: if (len > 3) { - free(buf_asm); - buf_asm = rz_str_newf(ops[i].name, buf[1] + 0x100 * buf[2] + 0x10000 * buf[3]); + rz_asm_op_setf_asm(op, ops[i].name, buf[1] + 0x100 * buf[2] + 0x10000 * buf[3]); } else { - free(buf_asm); - buf_asm = rz_str_newf("truncated"); + rz_asm_op_set_asm(op, "truncated"); len = -1; } break; default: - free(buf_asm); goto beach; } - rz_strbuf_set(&op->buf_asm, buf_asm); - free(buf_asm); return len; } } beach: + rz_asm_op_set_asm(op, "invalid"); return snesDisass(1, 1, pc, op, buf, len); } diff --git a/librz/asm/arch/gb/gbdis.c b/librz/asm/arch/gb/gbdis.c index 51e3e24a1cb..86ddf07aa04 100644 --- a/librz/asm/arch/gb/gbdis.c +++ b/librz/asm/arch/gb/gbdis.c @@ -156,34 +156,29 @@ static int gbDisass(RzAsmOp *op, const ut8 *buf, int len) { if (len < foo) { return 0; } - char *buf_asm = rz_str_newf("invalid"); char reg[32]; memset(reg, '\0', sizeof(reg)); switch (gb_op[buf[0]].type) { case GB_8BIT: - free(buf_asm); - buf_asm = rz_str_newf("%s", gb_op[buf[0]].name); + rz_asm_op_setf_asm(op, "%s", gb_op[buf[0]].name); break; case GB_16BIT: - free(buf_asm); - buf_asm = rz_str_newf("%s %s", cb_ops[buf[1] >> 3u], cb_regs[buf[1] & 7u]); + rz_asm_op_setf_asm(op, "%s %s", cb_ops[buf[1] >> 3u], cb_regs[buf[1] & 7u]); break; case GB_8BIT + ARG_8: - free(buf_asm); - buf_asm = rz_str_newf(gb_op[buf[0]].name, buf[1]); + rz_asm_op_setf_asm(op, gb_op[buf[0]].name, buf[1]); break; case GB_8BIT + ARG_16: - free(buf_asm); - buf_asm = rz_str_newf(gb_op[buf[0]].name, buf[1] + 0x100 * buf[2]); + rz_asm_op_setf_asm(op, gb_op[buf[0]].name, buf[1] + 0x100 * buf[2]); break; case GB_8BIT + ARG_8 + GB_IO: gb_hardware_register_name(reg, buf[1]); - free(buf_asm); - buf_asm = rz_str_newf(gb_op[buf[0]].name, reg); + rz_asm_op_setf_asm(op, gb_op[buf[0]].name, reg); + break; + default: + rz_asm_op_set_asm(op, "invalid"); break; } - rz_strbuf_set(&op->buf_asm, buf_asm); - free(buf_asm); return foo; } #endif diff --git a/librz/asm/arch/i4004/i4004dis.c b/librz/asm/arch/i4004/i4004dis.c index 57151d49979..ecec65f73d7 100644 --- a/librz/asm/arch/i4004/i4004dis.c +++ b/librz/asm/arch/i4004/i4004dis.c @@ -62,86 +62,39 @@ static int i4004dis(RzAsmOp *op, const ut8 *buf, int len) { int rlen = i4004_get_ins_len(*buf); ut8 high = (*buf & 0xf0) >> 4; ut8 low = (*buf & 0xf); - char *buf_asm = rz_str_newf("invalid"); if (rlen > len) { - free(buf_asm); return op->size = 0; } switch (high) { - case 0: - free(buf_asm); - buf_asm = rz_str_newf(low ? "invalid" : "nop"); - break; - case 1: - free(buf_asm); - buf_asm = rz_str_newf("jcn %d 0x%02x", low, buf[1]); - break; + case 0: rz_asm_op_set_asm(op, low ? "invalid" : "nop"); break; + case 1: rz_asm_op_setf_asm(op, "jcn %d 0x%02x", low, buf[1]); break; case 2: - free(buf_asm); if (rlen == 1) { - buf_asm = rz_str_newf("src r%d", (low & 0xe)); + rz_asm_op_setf_asm(op, "src r%d", (low & 0xe)); } else { - buf_asm = rz_str_newf("fim r%d, 0x%02x", (low & 0xe), buf[1]); + rz_asm_op_setf_asm(op, "fim r%d, 0x%02x", (low & 0xe), buf[1]); } break; case 3: - free(buf_asm); if ((low & 1) == 1) { - buf_asm = rz_str_newf("jin r%d", (low & 0xe)); + rz_asm_op_setf_asm(op, "jin r%d", (low & 0xe)); } else { - buf_asm = rz_str_newf("fin r%d", (low & 0xe)); + rz_asm_op_setf_asm(op, "fin r%d", (low & 0xe)); } break; - case 4: - free(buf_asm); - buf_asm = rz_str_newf("jun 0x%03x", ((ut16)(low << 8) | buf[1])); - break; - case 5: - free(buf_asm); - buf_asm = rz_str_newf("jms 0x%03x", ((ut16)(low << 8) | buf[1])); - break; - case 6: - free(buf_asm); - buf_asm = rz_str_newf("inc r%d", low); - break; - case 7: - free(buf_asm); - buf_asm = rz_str_newf("isz r%d, 0x%02x", low, buf[1]); - break; - case 8: - free(buf_asm); - buf_asm = rz_str_newf("add r%d", low); - break; - case 9: - free(buf_asm); - buf_asm = rz_str_newf("sub r%d", low); - break; - case 10: - free(buf_asm); - buf_asm = rz_str_newf("ld r%d", low); - break; - case 11: - free(buf_asm); - buf_asm = rz_str_newf("xch r%d", low); - break; - case 12: - free(buf_asm); - buf_asm = rz_str_newf("bbl %d", low); - break; - case 13: - free(buf_asm); - buf_asm = rz_str_newf("ldm %d", low); - break; - case 14: - free(buf_asm); - buf_asm = rz_str_newf("%s", i4004_e[low]); - break; - case 15: - free(buf_asm); - buf_asm = rz_str_newf("%s", i4004_f[low]); - break; + case 4: rz_asm_op_setf_asm(op, "jun 0x%03x", ((ut16)(low << 8) | buf[1])); break; + case 5: rz_asm_op_setf_asm(op, "jms 0x%03x", ((ut16)(low << 8) | buf[1])); break; + case 6: rz_asm_op_setf_asm(op, "inc r%d", low); break; + case 7: rz_asm_op_setf_asm(op, "isz r%d, 0x%02x", low, buf[1]); break; + case 8: rz_asm_op_setf_asm(op, "add r%d", low); break; + case 9: rz_asm_op_setf_asm(op, "sub r%d", low); break; + case 10: rz_asm_op_setf_asm(op, "ld r%d", low); break; + case 11: rz_asm_op_setf_asm(op, "xch r%d", low); break; + case 12: rz_asm_op_setf_asm(op, "bbl %d", low); break; + case 13: rz_asm_op_setf_asm(op, "ldm %d", low); break; + case 14: rz_asm_op_set_asm(op, i4004_e[low]); break; + case 15: rz_asm_op_set_asm(op, i4004_f[low]); break; + default: rz_asm_op_set_asm(op, "invalid"); break; } - rz_strbuf_set(&op->buf_asm, buf_asm); - free(buf_asm); return op->size = rlen; }