diff --git a/librz/asm/p/asm_sysz.c b/librz/asm/p/asm_sysz.c index 0e7e3970d39..893eeb32936 100644 --- a/librz/asm/p/asm_sysz.c +++ b/librz/asm/p/asm_sysz.c @@ -35,16 +35,15 @@ static int sysz_disassemble(RzAsm *a, RzAsmOp *op, const ut8 *buf, int len) { if (n > 0) { if (insn->size > 0) { op->size = insn->size; - char *buf_asm = rz_str_newf("%s%s%s", + rz_asm_op_setf_asm(op, "%s%s%s", insn->mnemonic, insn->op_str[0] ? " " : "", insn->op_str); - if (buf_asm) { - char *ptrstr = strstr(buf_asm, "ptr "); + char *str = rz_asm_op_get_asm(op); + if (str) { + char *ptrstr = strstr(str, "ptr "); if (ptrstr) { memmove(ptrstr, ptrstr + 4, strlen(ptrstr + 4) + 1); } - rz_asm_op_set_asm(op, buf_asm); - free(buf_asm); } } cs_free(insn, n); diff --git a/librz/asm/p/asm_tms320.c b/librz/asm/p/asm_tms320.c index 403fd70a60c..5ecbc8c63b5 100644 --- a/librz/asm/p/asm_tms320.c +++ b/librz/asm/p/asm_tms320.c @@ -62,12 +62,11 @@ static int tms320c64x_disassemble(RzAsm *a, RzAsmOp *op, const ut8 *buf, int len goto fin; } op->size = insn->size; - char *buf_asm = rz_str_newf("%s%s%s", insn->mnemonic, insn->op_str[0] ? " " : "", insn->op_str); - if (buf_asm) { - rz_str_replace_char(buf_asm, '%', 0); - rz_str_case(buf_asm, false); - rz_asm_op_set_asm(op, buf_asm); - free(buf_asm); + rz_asm_op_setf_asm(op, "%s%s%s", insn->mnemonic, insn->op_str[0] ? " " : "", insn->op_str); + char *str = rz_asm_op_get_asm(op); + if (str) { + rz_str_replace_char(str, '%', 0); + rz_str_case(str, false); } cs_free(insn, n); fin: diff --git a/librz/asm/p/asm_tms320c64x.c b/librz/asm/p/asm_tms320c64x.c index 1c19ed04f17..dee428190a2 100644 --- a/librz/asm/p/asm_tms320c64x.c +++ b/librz/asm/p/asm_tms320c64x.c @@ -54,12 +54,11 @@ static int tms320c64x_disassemble(RzAsm *a, RzAsmOp *op, const ut8 *buf, int len goto fin; } op->size = insn->size; - char *buf_asm = rz_str_newf("%s%s%s", insn->mnemonic, insn->op_str[0] ? " " : "", insn->op_str); - if (buf_asm) { - rz_str_replace_char(buf_asm, '%', 0); - rz_str_case(buf_asm, false); - rz_asm_op_set_asm(op, buf_asm); - free(buf_asm); + rz_asm_op_setf_asm(op, "%s%s%s", insn->mnemonic, insn->op_str[0] ? " " : "", insn->op_str); + char *str = rz_asm_op_get_asm(op); + if (str) { + rz_str_replace_char(str, '%', 0); + rz_str_case(str, false); } cs_free(insn, n); fin: