private MethodInfo(DexNode dex, int mthIndex) { MethodId mthId = dex.getMethodId(mthIndex); name = dex.getString(mthId.getNameIndex()); alias = name; aliasFromPreset = false; declClass = ClassInfo.fromDex(dex, mthId.getDeclaringClassIndex()); ProtoId proto = dex.getProtoId(mthId.getProtoIndex()); retType = dex.getType(proto.getReturnTypeIndex()); args = dex.readParamList(proto.getParametersOffset()); shortId = makeSignature(true); }
/** * Returns the methods with {@code memberNameIndex} declared by {@code * declaringType} and its subtypes. */ private Set<Integer> getMethodIds(Dex dex, Set<Integer> memberNameIndexes, int declaringType) { Set<Integer> subtypes = findAssignableTypes(dex, declaringType); Set<Integer> methods = new HashSet<Integer>(); int methodIndex = 0; for (MethodId method : dex.methodIds()) { if (memberNameIndexes.contains(method.getNameIndex()) && subtypes.contains(method.getDeclaringClassIndex())) { methods.add(methodIndex); } methodIndex++; } return methods; }
/** * Returns the methods with {@code memberNameIndex} declared by {@code * declaringType} and its subtypes. */ private Set<Integer> getMethodIds(Dex dex, Set<Integer> memberNameIndexes, int declaringType) { Set<Integer> subtypes = findAssignableTypes(dex, declaringType); Set<Integer> methods = new HashSet<Integer>(); int methodIndex = 0; for (MethodId method : dex.methodIds()) { if (memberNameIndexes.contains(method.getNameIndex()) && subtypes.contains(method.getDeclaringClassIndex())) { methods.add(methodIndex); } methodIndex++; } return methods; }
/** * Returns the methods with {@code memberNameIndex} declared by {@code * declaringType} and its subtypes. */ private Set<Integer> getMethodIds(Dex dex, Set<Integer> memberNameIndexes, int declaringType) { Set<Integer> subtypes = findAssignableTypes(dex, declaringType); Set<Integer> methods = new HashSet<Integer>(); int methodIndex = 0; for (MethodId method : dex.methodIds()) { if (memberNameIndexes.contains(method.getNameIndex()) && subtypes.contains(method.getDeclaringClassIndex())) { methods.add(methodIndex); } methodIndex++; } return methods; }
public MethodId adjust(MethodId methodId) { return new MethodId(target, adjustType(methodId.getDeclaringClassIndex()), adjustProto(methodId.getProtoIndex()), adjustString(methodId.getNameIndex())); }
public MethodId adjust(MethodId methodId) { return new MethodId(target, adjustType(methodId.getDeclaringClassIndex()), adjustProto(methodId.getProtoIndex()), adjustString(methodId.getNameIndex())); }
public MethodId adjust(MethodId methodId) { return new MethodId(target, adjustType(methodId.getDeclaringClassIndex()), adjustProto(methodId.getProtoIndex()), adjustString(methodId.getNameIndex())); }