Skip to content

Commit 9e6e19e

Browse files
committed
优化寄存器内存申请,之前逻辑有问题导致每次多分配内存
1 parent 3adc699 commit 9e6e19e

File tree

1 file changed

+3
-4
lines changed

1 file changed

+3
-4
lines changed

nmm-protect/apkprotect/src/main/java/com/nmmedit/apkprotect/dex2c/converter/JniCodeGenerator.java

+3-4
Original file line numberDiff line numberDiff line change
@@ -101,11 +101,10 @@ public void addMethod(Method method, Writer writer) throws IOException {
101101
} else {
102102
//一次同时分配寄存器及它的状态所需内存
103103
regsAssign = new StringBuilder(String.format(
104-
" const u2 flags_count = %d / sizeof(regptr_t) + ((%d %% sizeof(regptr_t)) ? 1 : 0);\n" +
105-
" regptr_t *regs = (regptr_t *) calloc(%d, sizeof(regptr_t) + flags_count);\n",
106-
registerCount, registerCount, registerCount));
104+
" regptr_t *regs = (regptr_t *) calloc(%d, sizeof(regptr_t) + sizeof(u1));\n",
105+
registerCount));
107106

108-
//寄存器后面部分是寄存器状态数组,一个状态一个字节
107+
//寄存器后面部分是寄存器状态数组,和寄存器数量一一对应
109108
regFlagsAssign = new StringBuilder(
110109
String.format(" u1 *reg_flags = ((u1 *) regs) + (%d * sizeof(regptr_t));\n", registerCount));
111110
}

0 commit comments

Comments
 (0)