private String location() { String className = dex.typeNames().get(currentClass.getTypeIndex()); if (currentMethod != null) { MethodId methodId = dex.methodIds().get(currentMethod.getMethodIndex()); return className + "." + dex.strings().get(methodId.getNameIndex()); } else { return className; } }
private String location() { String className = dex.typeNames().get(currentClass.getTypeIndex()); if (currentMethod != null) { MethodId methodId = dex.methodIds().get(currentMethod.getMethodIndex()); return className + "." + dex.strings().get(methodId.getNameIndex()); } else { return className; } }
private String location() { String className = dex.typeNames().get(currentClass.getTypeIndex()); if (currentMethod != null) { MethodId methodId = dex.methodIds().get(currentMethod.getMethodIndex()); return className + "." + dex.strings().get(methodId.getNameIndex()); } else { return className; } }
int methodIndex = method.getMethodIndex(); if (methodIds.contains(methodIndex)) { out.println(location() + " method declared " + dex.methodIds().get(methodIndex));
int methodIndex = method.getMethodIndex(); if (methodIds.contains(methodIndex)) { out.println(location() + " method declared " + dex.methodIds().get(methodIndex));
int methodIndex = method.getMethodIndex(); if (methodIds.contains(methodIndex)) { out.println(location() + " method declared " + dex.methodIds().get(methodIndex));
private void transformMethods(Dex in, IndexMap indexMap, ClassData.Method[] methods) { int lastOutMethodIndex = 0; for (ClassData.Method method : methods) { int outMethodIndex = indexMap.adjustMethod(method.getMethodIndex()); classDataOut.writeUleb128(outMethodIndex - lastOutMethodIndex); lastOutMethodIndex = outMethodIndex; classDataOut.writeUleb128(method.getAccessFlags()); if (method.getCodeOffset() == 0) { classDataOut.writeUleb128(0); } else { codeOut.alignToFourBytesWithZeroFill(); classDataOut.writeUleb128(codeOut.getPosition()); transformCode(in, in.readCode(method), indexMap); } } }
private void transformMethods(Dex in, IndexMap indexMap, ClassData.Method[] methods) { int lastOutMethodIndex = 0; for (ClassData.Method method : methods) { int outMethodIndex = indexMap.adjustMethod(method.getMethodIndex()); classDataOut.writeUleb128(outMethodIndex - lastOutMethodIndex); lastOutMethodIndex = outMethodIndex; classDataOut.writeUleb128(method.getAccessFlags()); if (method.getCodeOffset() == 0) { classDataOut.writeUleb128(0); } else { codeOut.alignToFourBytesWithZeroFill(); classDataOut.writeUleb128(codeOut.getPosition()); transformCode(in, in.readCode(method), indexMap); } } }
private void transformMethods(Dex in, IndexMap indexMap, ClassData.Method[] methods) { int lastOutMethodIndex = 0; for (ClassData.Method method : methods) { int outMethodIndex = indexMap.adjustMethod(method.getMethodIndex()); classDataOut.writeUleb128(outMethodIndex - lastOutMethodIndex); lastOutMethodIndex = outMethodIndex; classDataOut.writeUleb128(method.getAccessFlags()); if (method.getCodeOffset() == 0) { classDataOut.writeUleb128(0); } else { codeOut.alignToFourBytesWithZeroFill(); classDataOut.writeUleb128(codeOut.getPosition()); transformCode(in, in.readCode(method), indexMap); } } }
private String location() { String className = dex.typeNames().get(currentClass.getTypeIndex()); if (currentMethod != null) { MethodId methodId = dex.methodIds().get(currentMethod.getMethodIndex()); return className + "." + dex.strings().get(methodId.getNameIndex()); } else { return className; } }
private String location() { String className = dex.typeNames().get(currentClass.getTypeIndex()); if (currentMethod != null) { MethodId methodId = dex.methodIds().get(currentMethod.getMethodIndex()); return className + "." + dex.strings().get(methodId.getNameIndex()); } else { return className; } }
private String location() { String className = dex.typeNames().get(currentClass.getTypeIndex()); if (currentMethod != null) { MethodId methodId = dex.methodIds().get(currentMethod.getMethodIndex()); return className + "." + dex.strings().get(methodId.getNameIndex()); } else { return className; } }
public MethodNode(ClassNode classNode, Method mthData, boolean isVirtual) { this.mthInfo = MethodInfo.fromDex(classNode.dex(), mthData.getMethodIndex()); this.parentClass = classNode; this.accFlags = new AccessInfo(mthData.getAccessFlags(), AFType.METHOD); this.noCode = mthData.getCodeOffset() == 0; this.methodData = noCode ? null : mthData; this.methodIsVirtual = isVirtual; }