private String getMethodProtoTypeStr(MethodId methodId) { StringBuilder strBuilder = new StringBuilder(); strBuilder.append(owner.strings().get(methodId.nameIndex)); ProtoId protoId = owner.protoIds().get(methodId.protoIndex); strBuilder.append('('); short[] paramTypeIds = owner.parameterTypeIndicesFromMethodId(methodId); for (short typeId : paramTypeIds) { strBuilder.append(owner.typeNames().get(typeId)); } strBuilder.append(')').append(owner.typeNames().get(protoId.returnTypeIndex)); return strBuilder.toString(); } }
private boolean isSameProtoId(Dex oldDex, Dex newDex, int oldProtoIdIdx, int newProtoIdIdx) { ProtoId oldProtoId = oldDex.protoIds().get(oldProtoIdIdx); ProtoId newProtoId = newDex.protoIds().get(newProtoIdIdx); String oldShorty = oldDex.strings().get(oldProtoId.shortyIndex); String newShorty = newDex.strings().get(newProtoId.shortyIndex); if (!oldShorty.equals(newShorty)) { return false; } if (!isSameClassDesc( oldDex, newDex, oldProtoId.returnTypeIndex, newProtoId.returnTypeIndex )) { return false; } return isSameParameters( oldDex, newDex, oldProtoId.parametersOffset, newProtoId.parametersOffset ); }
private String getMethodProtoTypeStr(MethodId methodId) { StringBuilder strBuilder = new StringBuilder(); strBuilder.append(owner.strings().get(methodId.nameIndex)); ProtoId protoId = owner.protoIds().get(methodId.protoIndex); strBuilder.append('('); short[] paramTypeIds = owner.parameterTypeIndicesFromMethodId(methodId); for (short typeId : paramTypeIds) { strBuilder.append(owner.typeNames().get(typeId)); } strBuilder.append(')').append(owner.typeNames().get(protoId.returnTypeIndex)); return strBuilder.toString(); } }
private boolean isSameProtoId(Dex oldDex, Dex newDex, int oldProtoIdIdx, int newProtoIdIdx) { ProtoId oldProtoId = oldDex.protoIds().get(oldProtoIdIdx); ProtoId newProtoId = newDex.protoIds().get(newProtoIdIdx); String oldShorty = oldDex.strings().get(oldProtoId.shortyIndex); String newShorty = newDex.strings().get(newProtoId.shortyIndex); if (!oldShorty.equals(newShorty)) { return false; } if (!isSameClassDesc( oldDex, newDex, oldProtoId.returnTypeIndex, newProtoId.returnTypeIndex )) { return false; } return isSameParameters( oldDex, newDex, oldProtoId.parametersOffset, newProtoId.parametersOffset ); }