private boolean isClassReferToAnyClasses(DexClassInfo classInfo, Set<String> refereeClassDescs) { if (classInfo.classDef.classDataOffset == ClassDef.NO_OFFSET) { return false; } ClassData classData = classInfo.owner.readClassData(classInfo.classDef); for (ClassData.Method method : classData.directMethods) { if (isMethodReferToAnyClasses(classInfo, method, refereeClassDescs)) { return true; } } for (ClassData.Method method : classData.virtualMethods) { if (isMethodReferToAnyClasses(classInfo, method, refereeClassDescs)) { return true; } } return false; }
(oldClassDef.classDataOffset != 0 ? oldDex.readClassData(oldClassDef) : null); ClassData newClassData = (newClassDef.classDataOffset != 0 ? newDex.readClassData(newClassDef) : null); if (isClassDataChangeAffectedToReferrer( oldDex, newDex, oldClassData, newClassData
private boolean isClassReferToAnyClasses(DexClassInfo classInfo, Set<String> refereeClassDescs) { if (classInfo.classDef.classDataOffset == ClassDef.NO_OFFSET) { return false; } ClassData classData = classInfo.owner.readClassData(classInfo.classDef); for (ClassData.Method method : classData.directMethods) { if (isMethodReferToAnyClasses(classInfo, method, refereeClassDescs)) { return true; } } for (ClassData.Method method : classData.virtualMethods) { if (isMethodReferToAnyClasses(classInfo, method, refereeClassDescs)) { return true; } } return false; }
(oldClassDef.classDataOffset != 0 ? oldDex.readClassData(oldClassDef) : null); ClassData newClassData = (newClassDef.classDataOffset != 0 ? newDex.readClassData(newClassDef) : null); if (isClassDataChangeAffectedToReferrer( oldDex, newDex, oldClassData, newClassData