Skip to content

Commit 5eb40da

Browse files
author
swift_gan
committed
fix param parser of internal stub
1 parent a9debfe commit 5eb40da

File tree

2 files changed

+7
-2
lines changed

2 files changed

+7
-2
lines changed

xposedcompat/src/main/java/com/swift/sandhook/xposedcompat/hookstub/HookMethodEntity.java

+5-2
Original file line numberDiff line numberDiff line change
@@ -41,13 +41,16 @@ public Object[] getArgs(long... addresses) {
4141
public long[] getArgsAddress(long[] oldAddress, Object... args) {
4242
if (oldAddress == null || oldAddress.length == 0)
4343
return new long[0];
44-
long[] addresses = new long[oldAddress.length];
44+
long[] addresses;
4545
int argStart = 0;
4646
if (!isStatic()) {
4747
argStart = 1;
48+
addresses = new long[oldAddress.length + 1];
4849
addresses[0] = oldAddress[0];
50+
} else {
51+
addresses = new long[oldAddress.length];
4952
}
50-
for (int i = argStart;i < parType.length + argStart;i++) {
53+
for (int i = 0;i < parType.length;i++) {
5154
addresses[i + argStart] = ParamWrapper.objectToAddress(parType[i], args[i]);
5255
}
5356
return addresses;

xposedcompat/src/main/java/com/swift/sandhook/xposedcompat/hookstub/HookStubManager.java

+2
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import com.swift.sandhook.SandHook;
44
import com.swift.sandhook.SandHookMethodResolver;
55
import com.swift.sandhook.utils.ParamWrapper;
6+
import com.swift.sandhook.xposedcompat.utils.DexLog;
67

78
import java.lang.reflect.Constructor;
89
import java.lang.reflect.Member;
@@ -97,6 +98,7 @@ public static HookMethodEntity getHookMethodEntity(Member origin) {
9798
if (tryCompileAndResolveCallOriginMethod(entity.backup, stubMethodInfo.args, stubMethodInfo.index)) {
9899
return entity;
99100
} else {
101+
DexLog.w("internal stub <" + entity.hook.getName() + "> call origin compile failure, skip use internal stub");
100102
return null;
101103
}
102104
}

0 commit comments

Comments
 (0)