Unify OpcodeUtils.getNewestOpcodes variants

This commit is contained in:
Lanchon 2018-06-12 21:01:50 -03:00
parent 129555089a
commit cecca24141
2 changed files with 13 additions and 5 deletions

View File

@ -36,7 +36,7 @@ public abstract class AbstractMultiDexContainer<T extends DexFile> implements Mu
if (opcodes == null) { if (opcodes == null) {
//opcodes = getNewestOpcodes(); //opcodes = getNewestOpcodes();
for (T entry : entryMap.values()) { for (T entry : entryMap.values()) {
opcodes = OpcodeUtils.getNewestOpcodesNullable(opcodes, entry.getOpcodes()); opcodes = OpcodeUtils.getNewestOpcodes(opcodes, entry.getOpcodes(), true);
} }
//if (opcodes == null) throw nullOpcodes(); //if (opcodes == null) throw nullOpcodes();
} }
@ -63,7 +63,7 @@ public abstract class AbstractMultiDexContainer<T extends DexFile> implements Mu
public Opcodes getNewestOpcodes() { public Opcodes getNewestOpcodes() {
Opcodes opcodes = null; Opcodes opcodes = null;
for (String entryName : getDexEntryNames()) { for (String entryName : getDexEntryNames()) {
opcodes = OpcodeUtils.getNewestOpcodesNullable(opcodes, getEntry(entryName).getOpcodes()); opcodes = OpcodeUtils.getNewestOpcodes(opcodes, getEntry(entryName).getOpcodes(), true);
} }
} }
*/ */

View File

@ -24,13 +24,21 @@ public class OpcodeUtils {
return DexVersionMap.getHighestDexVersionFromApiLevel(opcodes.api); return DexVersionMap.getHighestDexVersionFromApiLevel(opcodes.api);
} }
@Deprecated
public static Opcodes getNewestOpcodesNullable(Opcodes o1, Opcodes o2) { public static Opcodes getNewestOpcodesNullable(Opcodes o1, Opcodes o2) {
if (o1 == null) return o2; return getNewestOpcodes(o1, o2, true);
if (o2 == null) return o1;
return getNewestOpcodes(o1, o2);
} }
@Deprecated
public static Opcodes getNewestOpcodes(Opcodes o1, Opcodes o2) { public static Opcodes getNewestOpcodes(Opcodes o1, Opcodes o2) {
return getNewestOpcodes(o1, o2, false);
}
public static Opcodes getNewestOpcodes(Opcodes o1, Opcodes o2, boolean nullable) {
if (nullable) {
if (o1 == null) return o2;
if (o2 == null) return o1;
}
if (o1.api == VersionMap.NO_VERSION || o2.api == VersionMap.NO_VERSION) throw undefinedApiLevel(); if (o1.api == VersionMap.NO_VERSION || o2.api == VersionMap.NO_VERSION) throw undefinedApiLevel();
return o1.api >= o2.api ? o1 : o2; return o1.api >= o2.api ? o1 : o2;
} }