Merge "Cleanup of access to methods in DexClass."
diff --git a/src/main/java/com/android/tools/r8/naming/MethodNameMinifier.java b/src/main/java/com/android/tools/r8/naming/MethodNameMinifier.java
index 4aca460..86670b8 100644
--- a/src/main/java/com/android/tools/r8/naming/MethodNameMinifier.java
+++ b/src/main/java/com/android/tools/r8/naming/MethodNameMinifier.java
@@ -140,24 +140,21 @@
if (holder != null && !holder.isLibraryClass()) {
NamingState<DexProto> state = states
.computeIfAbsent(type, k -> states.get(holder.superType).createChild());
- assignNamesToMethods(holder.directMethods(), state, doPrivates, renaming);
- assignNamesToMethods(holder.virtualMethods(), state, doPrivates, renaming);
+ holder.forEachMethod(method -> assignNameToMethod(method, state, doPrivates, renaming));
}
type.forAllExtendsSubtypes(
subtype -> assignNamesToClassesMethods(subtype, doPrivates, renaming));
}
- private void assignNamesToMethods(DexEncodedMethod[] methods,
+ private void assignNameToMethod(DexEncodedMethod encodedMethod,
NamingState<DexProto> state, boolean doPrivates, Map<DexMethod, DexString> renaming) {
- for (DexEncodedMethod encodedMethod : methods) {
- if (encodedMethod.accessFlags.isPrivate() != doPrivates) {
- continue;
- }
- DexMethod method = encodedMethod.method;
- if (!state.isReserved(method.name, method.proto)
- && !encodedMethod.accessFlags.isConstructor()) {
- renaming.put(method, state.assignNewNameFor(method.name, method.proto, !doPrivates));
- }
+ if (encodedMethod.accessFlags.isPrivate() != doPrivates) {
+ return;
+ }
+ DexMethod method = encodedMethod.method;
+ if (!state.isReserved(method.name, method.proto)
+ && !encodedMethod.accessFlags.isConstructor()) {
+ renaming.put(method, state.assignNewNameFor(method.name, method.proto, !doPrivates));
}
}