diff options
Diffstat (limited to 'libart/src/main/java')
-rw-r--r-- | libart/src/main/java/java/lang/reflect/AbstractMethod.java | 4 | ||||
-rw-r--r-- | libart/src/main/java/java/lang/reflect/Method.java | 2 |
2 files changed, 3 insertions, 3 deletions
diff --git a/libart/src/main/java/java/lang/reflect/AbstractMethod.java b/libart/src/main/java/java/lang/reflect/AbstractMethod.java index c1412e1..6a4b8e9 100644 --- a/libart/src/main/java/java/lang/reflect/AbstractMethod.java +++ b/libart/src/main/java/java/lang/reflect/AbstractMethod.java @@ -195,7 +195,7 @@ public abstract class AbstractMethod extends AccessibleObject { Class<?>[] parametersArray = new Class[types.length]; for (int i = 0; i < types.length; i++) { // Note, in the case of a Proxy the dex cache types are equal. - parametersArray[i] = getDexCacheType(dex, types[i]); + parametersArray[i] = getDexCacheType(dex, types[i] & 0xFFFF); } return parametersArray; } @@ -212,7 +212,7 @@ public abstract class AbstractMethod extends AccessibleObject { return false; } for (int i = 0; i < types.length; i++) { - if (getDexCacheType(dex, types[i]) != params[i]) { + if (getDexCacheType(dex, types[i] & 0xFFFF) != params[i]) { return false; } } diff --git a/libart/src/main/java/java/lang/reflect/Method.java b/libart/src/main/java/java/lang/reflect/Method.java index 5096745..ce3d99e 100644 --- a/libart/src/main/java/java/lang/reflect/Method.java +++ b/libart/src/main/java/java/lang/reflect/Method.java @@ -255,7 +255,7 @@ public final class Method extends AbstractMethod implements GenericDeclaration, short[] types = dex.parameterTypeIndicesFromMethodIndex(methodDexIndex); int length = Math.min(types.length, params.length); for (int i = 0; i < types.length; i++) { - Class<?> aType = getDexCacheType(dex, types[i]); + Class<?> aType = getDexCacheType(dex, types[i] & 0xFFFF); Class<?> bType = params[i]; if (aType != bType) { int comparison = aType.getName().compareTo(bType.getName()); |