rename memory function pointer types to have cs_ prefix. also rename internal function pointers my_* to have cs_mem_ prefix - suggested by Pancake
diff --git a/MCInst.c b/MCInst.c
index 7f04650..46bb4e6 100644
--- a/MCInst.c
+++ b/MCInst.c
@@ -30,7 +30,7 @@
inst->Operands[index] = *Op;
inst->size++;
- my_free(Op);
+ cs_mem_free(Op);
}
void MCInst_setOpcode(MCInst *inst, unsigned Op)
@@ -71,7 +71,7 @@
return -1;
inst->Operands[inst->size] = *Op;
- my_free(Op);
+ cs_mem_free(Op);
inst->size++;
@@ -152,7 +152,7 @@
MCOperand *MCOperand_CreateReg(unsigned Reg)
{
- MCOperand *op = my_malloc(sizeof(*op));
+ MCOperand *op = cs_mem_malloc(sizeof(*op));
op->Kind = kRegister;
op->RegVal = Reg;
@@ -162,7 +162,7 @@
MCOperand *MCOperand_CreateImm(int64_t Val)
{
- MCOperand *op = my_malloc(sizeof(*op));
+ MCOperand *op = cs_mem_malloc(sizeof(*op));
op->Kind = kImmediate;
op->ImmVal = Val;
@@ -172,7 +172,7 @@
MCOperand *MCOperand_CreateFPImm(double Val)
{
- MCOperand *op = my_malloc(sizeof(*op));
+ MCOperand *op = cs_mem_malloc(sizeof(*op));
op->Kind = kFPImmediate;
op->FPImmVal = Val;
diff --git a/arch/AArch64/AArch64BaseInfo.c b/arch/AArch64/AArch64BaseInfo.c
index 5e074d9..9d79bc8 100644
--- a/arch/AArch64/AArch64BaseInfo.c
+++ b/arch/AArch64/AArch64BaseInfo.c
@@ -44,7 +44,7 @@
*c = tolower((int) *c);
bool res = (strcmp(s1, lower) == 0);
- my_free(lower);
+ cs_mem_free(lower);
return res;
}
@@ -615,10 +615,10 @@
int dummy = sprintf(result, "s3_%s_c%s_c%s_%s", Op1S, CRnS, CRmS, Op2S);
(void)dummy;
- my_free(Op1S);
- my_free(CRnS);
- my_free(CRmS);
- my_free(Op2S);
+ cs_mem_free(Op1S);
+ cs_mem_free(CRnS);
+ cs_mem_free(CRmS);
+ cs_mem_free(Op2S);
}
static NamedImmMapper_Mapping TLBIPairs[] = {
diff --git a/arch/AArch64/AArch64GenAsmWriter.inc b/arch/AArch64/AArch64GenAsmWriter.inc
index e204983..e85f008 100644
--- a/arch/AArch64/AArch64GenAsmWriter.inc
+++ b/arch/AArch64/AArch64GenAsmWriter.inc
@@ -11759,7 +11759,7 @@
}
}
- my_free(tmp);
+ cs_mem_free(tmp);
return true;
}
diff --git a/arch/AArch64/AArch64InstPrinter.c b/arch/AArch64/AArch64InstPrinter.c
index b5bd056..e69f38a 100644
--- a/arch/AArch64/AArch64InstPrinter.c
+++ b/arch/AArch64/AArch64InstPrinter.c
@@ -571,7 +571,7 @@
char *Name = strdup(getRegisterName(Reg));
Name[0] = 'v';
SStream_concat(O, "%s", Name);
- my_free(Name);
+ cs_mem_free(Name);
if (MI->csh->detail) {
MI->flat_insn.arm64.operands[MI->flat_insn.arm64.op_count].type = ARM64_OP_REG;
MI->flat_insn.arm64.operands[MI->flat_insn.arm64.op_count].reg = Reg;
@@ -786,13 +786,13 @@
SStream_concat(O, "%s%s", Name, LayoutStr);
if (I != Count - 1)
SStream_concat(O, ", ");
- my_free(Name);
+ cs_mem_free(Name);
}
} else { // Print the register directly when NumVecs is 1.
char *Name = strdup(getRegisterName(Reg));
Name[0] = 'v';
SStream_concat(O, "%s%s", Name, LayoutStr);
- my_free(Name);
+ cs_mem_free(Name);
}
SStream_concat(O, "}");
}
@@ -822,7 +822,7 @@
unsigned int id = AArch64_map_insn(mnem);
MCInst_setOpcode(MI, AArch64_get_insn_id2(id));
MCInst_setOpcodePub(MI, id);
- my_free(mnem);
+ cs_mem_free(mnem);
} else
AArch64InstPrinter_printInstruction(MI, O, Info);
}
diff --git a/arch/AArch64/module.c b/arch/AArch64/module.c
index 1f4595b..4f0cbb3 100644
--- a/arch/AArch64/module.c
+++ b/arch/AArch64/module.c
@@ -11,7 +11,7 @@
static cs_err init(cs_struct *ud)
{
- MCRegisterInfo *mri = my_malloc(sizeof(*mri));
+ MCRegisterInfo *mri = cs_mem_malloc(sizeof(*mri));
AArch64_init(mri);
ud->printer = AArch64_printInst;
diff --git a/arch/ARM/ARMInstPrinter.c b/arch/ARM/ARMInstPrinter.c
index 07ef651..7851cfe 100644
--- a/arch/ARM/ARMInstPrinter.c
+++ b/arch/ARM/ARMInstPrinter.c
@@ -519,7 +519,7 @@
NewReg = MCOperand_CreateReg(MCRegisterInfo_getMatchingSuperReg(MRI, Reg, ARM_gsub_0,
MCRegisterInfo_getRegClass(MRI, ARM_GPRPairRegClassID)));
MCInst_addOperand2(&NewMI, NewReg);
- my_free(NewReg);
+ cs_mem_free(NewReg);
// Copy the rest operands into NewMI.
unsigned i;
diff --git a/arch/ARM/module.c b/arch/ARM/module.c
index fa38742..3a46f46 100644
--- a/arch/ARM/module.c
+++ b/arch/ARM/module.c
@@ -11,7 +11,7 @@
static cs_err init(cs_struct *ud)
{
- MCRegisterInfo *mri = my_malloc(sizeof(*mri));
+ MCRegisterInfo *mri = cs_mem_malloc(sizeof(*mri));
ARM_init(mri);
diff --git a/arch/Mips/MipsGenAsmWriter.inc b/arch/Mips/MipsGenAsmWriter.inc
index 14dd676..ba2a3f4 100644
--- a/arch/Mips/MipsGenAsmWriter.inc
+++ b/arch/Mips/MipsGenAsmWriter.inc
@@ -4470,7 +4470,7 @@
}
}
- my_free(tmp);
+ cs_mem_free(tmp);
return true;
}
diff --git a/arch/Mips/MipsInstPrinter.c b/arch/Mips/MipsInstPrinter.c
index f7048bf..4734188 100644
--- a/arch/Mips/MipsInstPrinter.c
+++ b/arch/Mips/MipsInstPrinter.c
@@ -174,7 +174,7 @@
unsigned id = Mips_map_insn(mnem);
MCInst_setOpcode(MI, Mips_get_insn_id2(id));
MCInst_setOpcodePub(MI, id);
- my_free(mnem);
+ cs_mem_free(mnem);
}
switch (MCInst_getOpcode(MI)) {
diff --git a/arch/Mips/module.c b/arch/Mips/module.c
index 5d0de87..d5030bf 100644
--- a/arch/Mips/module.c
+++ b/arch/Mips/module.c
@@ -11,7 +11,7 @@
static cs_err init(cs_struct *ud)
{
- MCRegisterInfo *mri = my_malloc(sizeof(*mri));
+ MCRegisterInfo *mri = cs_mem_malloc(sizeof(*mri));
Mips_init(mri);
ud->printer = Mips_printInst;
diff --git a/arch/PowerPC/module.c b/arch/PowerPC/module.c
index c4a6135..6257d21 100644
--- a/arch/PowerPC/module.c
+++ b/arch/PowerPC/module.c
@@ -11,7 +11,7 @@
static cs_err init(cs_struct *ud)
{
- MCRegisterInfo *mri = my_malloc(sizeof(*mri));
+ MCRegisterInfo *mri = cs_mem_malloc(sizeof(*mri));
PPC_init(mri);
ud->printer = PPC_printInst;
diff --git a/arch/X86/X86ATTInstPrinter.c b/arch/X86/X86ATTInstPrinter.c
index de9aabd..e6fa702 100644
--- a/arch/X86/X86ATTInstPrinter.c
+++ b/arch/X86/X86ATTInstPrinter.c
@@ -453,7 +453,7 @@
*tab = '\0';
// reflect the new insn name (alias) in the opcode
MCInst_setOpcode(MI, X86_get_insn_id2(X86_map_insn(mnem)));
- my_free(mnem);
+ cs_mem_free(mnem);
} else
printInstruction(MI, OS);
diff --git a/arch/X86/X86GenAsmWriter.inc b/arch/X86/X86GenAsmWriter.inc
index a69bea3..422bb96 100644
--- a/arch/X86/X86GenAsmWriter.inc
+++ b/arch/X86/X86GenAsmWriter.inc
@@ -13397,7 +13397,7 @@
}
}
- my_free(tmp);
+ cs_mem_free(tmp);
return true;
}
diff --git a/arch/X86/X86GenAsmWriter1.inc b/arch/X86/X86GenAsmWriter1.inc
index d94dddb..1d07e5b 100644
--- a/arch/X86/X86GenAsmWriter1.inc
+++ b/arch/X86/X86GenAsmWriter1.inc
@@ -12886,7 +12886,7 @@
}
}
- my_free(tmp);
+ cs_mem_free(tmp);
return true;
}
diff --git a/arch/X86/X86IntelInstPrinter.c b/arch/X86/X86IntelInstPrinter.c
index e33bb9b..fd90b03 100644
--- a/arch/X86/X86IntelInstPrinter.c
+++ b/arch/X86/X86IntelInstPrinter.c
@@ -229,7 +229,7 @@
*tab = '\0';
// reflect the new insn name (alias) in the opcode
MCInst_setOpcode(MI, X86_get_insn_id2(X86_map_insn(mnem)));
- my_free(mnem);
+ cs_mem_free(mnem);
} else
printInstruction(MI, O);
diff --git a/cs.c b/cs.c
index 5cf3b33..194b56b 100644
--- a/cs.c
+++ b/cs.c
@@ -43,15 +43,15 @@
unsigned int all_arch = 0;
#ifdef USE_SYS_DYN_MEM
-malloc_t my_malloc = malloc;
-calloc_t my_calloc = calloc;
-realloc_t my_realloc = realloc;
-free_t my_free = free;
+cs_malloc_t cs_mem_malloc = malloc;
+cs_calloc_t cs_mem_calloc = calloc;
+cs_realloc_t cs_mem_realloc = realloc;
+cs_free_t cs_mem_free = free;
#else
-malloc_t my_malloc = NULL;
-calloc_t my_calloc = NULL;
-realloc_t my_realloc = NULL;
-free_t my_free = NULL;
+cs_malloc_t cs_mem_malloc = NULL;
+cs_calloc_t cs_mem_calloc = NULL;
+cs_realloc_t cs_mem_realloc = NULL;
+cs_free_t cs_mem_free = NULL;
#endif
unsigned int cs_version(int *major, int *minor)
@@ -112,7 +112,7 @@
cs_err cs_open(cs_arch arch, cs_mode mode, csh *handle)
{
- if (!my_malloc || !my_calloc || !my_realloc || !my_free)
+ if (!cs_mem_malloc || !cs_mem_calloc || !cs_mem_realloc || !cs_mem_free)
// Error: before cs_open(), dynamic memory management must be initialized
// with cs_option(CS_OPT_MEM)
return CS_ERR_MEMSETUP;
@@ -120,7 +120,7 @@
if (arch < CS_ARCH_MAX && arch_init[arch]) {
cs_struct *ud;
- ud = my_calloc(1, sizeof(*ud));
+ ud = cs_mem_calloc(1, sizeof(*ud));
if (!ud) {
// memory insufficient
return CS_ERR_MEM;
@@ -158,7 +158,7 @@
case CS_ARCH_MIPS:
case CS_ARCH_ARM64:
case CS_ARCH_PPC:
- my_free(ud->printer_info);
+ cs_mem_free(ud->printer_info);
break;
default: // unsupported architecture
return CS_ERR_HANDLE;
@@ -166,9 +166,9 @@
// arch_destroy[ud->arch](ud);
- my_free(ud->insn_cache);
+ cs_mem_free(ud->insn_cache);
memset(ud, 0, sizeof(*ud));
- my_free(ud);
+ cs_mem_free(ud);
return CS_ERR_OK;
}
@@ -237,10 +237,10 @@
if (type == CS_OPT_MEM) {
cs_opt_mem *mem = (cs_opt_mem *)value;
- my_malloc = mem->malloc;
- my_calloc = mem->calloc;
- my_realloc = mem->realloc;
- my_free = mem->free;
+ cs_mem_malloc = mem->malloc;
+ cs_mem_calloc = mem->calloc;
+ cs_mem_realloc = mem->realloc;
+ cs_mem_free = mem->free;
return CS_ERR_OK;
}
@@ -297,7 +297,7 @@
mci.flat_insn.address = offset;
mci.flat_insn.size = insn_size;
// allocate memory for @detail pointer
- insn_cache[f].detail = my_calloc(1, sizeof(cs_detail));
+ insn_cache[f].detail = cs_mem_calloc(1, sizeof(cs_detail));
}
handle->printer(&mci, &ss, handle->printer_info);
@@ -309,9 +309,9 @@
if (f == ARR_SIZE(insn_cache)) {
// resize total to contain newly disasm insns
total_size += sizeof(insn_cache);
- void *tmp = my_realloc(total, total_size);
+ void *tmp = cs_mem_realloc(total, total_size);
if (tmp == NULL) { // insufficient memory
- my_free(total);
+ cs_mem_free(total);
handle->errnum = CS_ERR_MEM;
return 0;
}
@@ -338,9 +338,9 @@
if (f) {
// resize total to contain newly disasm insns
- void *tmp = my_realloc(total, total_size + f * sizeof(insn_cache[0]));
+ void *tmp = cs_mem_realloc(total, total_size + f * sizeof(insn_cache[0]));
if (tmp == NULL) { // insufficient memory
- my_free(total);
+ cs_mem_free(total);
handle->errnum = CS_ERR_MEM;
return 0;
}
@@ -360,10 +360,10 @@
// free all detail pointers
for (i = 0; i < count; i++)
- my_free(insn[i].detail);
+ cs_mem_free(insn[i].detail);
// then free pointer to cs_insn array
- my_free(insn);
+ cs_mem_free(insn);
}
// return friendly name of regiser in a string
diff --git a/cs_priv.h b/cs_priv.h
index eb7e379..4a8997e 100644
--- a/cs_priv.h
+++ b/cs_priv.h
@@ -60,9 +60,9 @@
extern unsigned int all_arch;
-extern malloc_t my_malloc;
-extern calloc_t my_calloc;
-extern realloc_t my_realloc;
-extern free_t my_free;
+extern cs_malloc_t cs_mem_malloc;
+extern cs_calloc_t cs_mem_calloc;
+extern cs_realloc_t cs_mem_realloc;
+extern cs_free_t cs_mem_free;
#endif
diff --git a/include/capstone.h b/include/capstone.h
index 5aec27d..c19d651 100644
--- a/include/capstone.h
+++ b/include/capstone.h
@@ -48,19 +48,19 @@
CS_MODE_BIG_ENDIAN = 1 << 31 // big endian mode
} cs_mode;
-typedef void* (*malloc_t)(size_t size);
-typedef void* (*calloc_t)(size_t nmemb, size_t size);
-typedef void* (*realloc_t)(void *ptr, size_t size);
-typedef void (*free_t)(void *ptr);
+typedef void* (*cs_malloc_t)(size_t size);
+typedef void* (*cs_calloc_t)(size_t nmemb, size_t size);
+typedef void* (*cs_realloc_t)(void *ptr, size_t size);
+typedef void (*cs_free_t)(void *ptr);
// User-defined memory malloc/calloc/realloc/free functions
// These functions will be used internally to dynamically manage memory.
// By default, Capstone uses system's malloc(), calloc(), realloc() & free().
typedef struct cs_opt_mem {
- malloc_t malloc;
- calloc_t calloc;
- realloc_t realloc;
- free_t free;
+ cs_malloc_t malloc;
+ cs_calloc_t calloc;
+ cs_realloc_t realloc;
+ cs_free_t free;
} cs_opt_mem;
// Runtime option for the disassembled engine
diff --git a/utils.c b/utils.c
index 2251f72..87750ce 100644
--- a/utils.c
+++ b/utils.c
@@ -28,7 +28,7 @@
unsigned short max_id = insns[size - 1].id;
unsigned int i;
- unsigned short *cache = (unsigned short *)my_calloc(sizeof(*cache), max_id + 1);
+ unsigned short *cache = (unsigned short *)cs_mem_calloc(sizeof(*cache), max_id + 1);
for (i = 1; i < size; i++)
cache[insns[i].id] = i;