private boolean isSameName(Dex oldDex, Dex newDex, int oldStringId, int newStringId) { if (oldStringId == TableOfContents.Section.UNDEF_INDEX && newStringId == TableOfContents.Section.UNDEF_INDEX) { return true; } if (oldStringId == TableOfContents.Section.UNDEF_INDEX || newStringId == TableOfContents.Section.UNDEF_INDEX) { return false; } return oldDex.strings().get(oldStringId).equals(newDex.strings().get(newStringId)); }
private boolean isSameMethodId(Dex oldDex, Dex newDex, int oldMethodIdIdx, int newMethodIdIdx) { MethodId oldMethodId = oldDex.methodIds().get(oldMethodIdIdx); MethodId newMethodId = newDex.methodIds().get(newMethodIdIdx); if (!isSameClassDesc( oldDex, newDex, oldMethodId.declaringClassIndex, newMethodId.declaringClassIndex )) { return false; } if (!isSameProtoId(oldDex, newDex, oldMethodId.protoIndex, newMethodId.protoIndex)) { return false; } String oldName = oldDex.strings().get(oldMethodId.nameIndex); String newName = newDex.strings().get(newMethodId.nameIndex); return oldName.equals(newName); }
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 isSameFieldId(Dex oldDex, Dex newDex, int oldFieldIdIdx, int newFieldIdIdx) { FieldId oldFieldId = oldDex.fieldIds().get(oldFieldIdIdx); FieldId newFieldId = newDex.fieldIds().get(newFieldIdIdx); if (!isSameClassDesc( oldDex, newDex, oldFieldId.declaringClassIndex, newFieldId.declaringClassIndex )) { return false; } if (!isSameClassDesc( oldDex, newDex, oldFieldId.typeIndex, newFieldId.typeIndex )) { return false; } String oldName = oldDex.strings().get(oldFieldId.nameIndex); String newName = newDex.strings().get(newFieldId.nameIndex); return oldName.equals(newName); }
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 ); }
MethodId newMethodId = newDex.methodIds().get(newMethod.methodIndex); String oldMethodName = oldDex.strings().get(oldMethodId.nameIndex); String newMethodName = newDex.strings().get(newMethodId.nameIndex); if (!oldMethodName.equals(newMethodName)) { return true; ProtoId newProtoId = newDex.protoIds().get(newMethodId.protoIndex); String oldMethodShorty = oldDex.strings().get(oldProtoId.shortyIndex); String newMethodShorty = newDex.strings().get(newProtoId.shortyIndex); if (!oldMethodShorty.equals(newMethodShorty)) { return true;
final FieldId fieldId = owner.fieldIds().get(index); typeName = owner.typeNames().get(fieldId.declaringClassIndex); refInfoInLog = "referencing to field: " + owner.strings().get(fieldId.nameIndex); break;
private boolean isSameName(Dex oldDex, Dex newDex, int oldStringId, int newStringId) { if (oldStringId == TableOfContents.Section.UNDEF_INDEX && newStringId == TableOfContents.Section.UNDEF_INDEX) { return true; } if (oldStringId == TableOfContents.Section.UNDEF_INDEX || newStringId == TableOfContents.Section.UNDEF_INDEX) { return false; } return oldDex.strings().get(oldStringId).equals(newDex.strings().get(newStringId)); }
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 isSameMethodId(Dex oldDex, Dex newDex, int oldMethodIdIdx, int newMethodIdIdx) { MethodId oldMethodId = oldDex.methodIds().get(oldMethodIdIdx); MethodId newMethodId = newDex.methodIds().get(newMethodIdIdx); if (!isSameClassDesc( oldDex, newDex, oldMethodId.declaringClassIndex, newMethodId.declaringClassIndex )) { return false; } if (!isSameProtoId(oldDex, newDex, oldMethodId.protoIndex, newMethodId.protoIndex)) { return false; } String oldName = oldDex.strings().get(oldMethodId.nameIndex); String newName = newDex.strings().get(newMethodId.nameIndex); return oldName.equals(newName); }
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 boolean isSameFieldId(Dex oldDex, Dex newDex, int oldFieldIdIdx, int newFieldIdIdx) { FieldId oldFieldId = oldDex.fieldIds().get(oldFieldIdIdx); FieldId newFieldId = newDex.fieldIds().get(newFieldIdIdx); if (!isSameClassDesc( oldDex, newDex, oldFieldId.declaringClassIndex, newFieldId.declaringClassIndex )) { return false; } if (!isSameClassDesc( oldDex, newDex, oldFieldId.typeIndex, newFieldId.typeIndex )) { return false; } String oldName = oldDex.strings().get(oldFieldId.nameIndex); String newName = newDex.strings().get(newFieldId.nameIndex); return oldName.equals(newName); }
MethodId newMethodId = newDex.methodIds().get(newMethod.methodIndex); String oldMethodName = oldDex.strings().get(oldMethodId.nameIndex); String newMethodName = newDex.strings().get(newMethodId.nameIndex); if (!oldMethodName.equals(newMethodName)) { return true; ProtoId newProtoId = newDex.protoIds().get(newMethodId.protoIndex); String oldMethodShorty = oldDex.strings().get(oldProtoId.shortyIndex); String newMethodShorty = newDex.strings().get(newProtoId.shortyIndex); if (!oldMethodShorty.equals(newMethodShorty)) { return true;
final FieldId fieldId = owner.fieldIds().get(index); typeName = owner.typeNames().get(fieldId.declaringClassIndex); refInfoInLog = "referencing to field: " + owner.strings().get(fieldId.nameIndex); break;