Change boolean for dex fill strategy with an enum

This is a follow up to 25687c1b80e0f3f5575eeaf07176948e8feee6b6.

R=ager@google.com

Change-Id: Ie164c7e33ff1ecd5fe200e70bc5a1f75e58eb8e9
diff --git a/src/main/java/com/android/tools/r8/dex/VirtualFile.java b/src/main/java/com/android/tools/r8/dex/VirtualFile.java
index c87c34d..3db0502 100644
--- a/src/main/java/com/android/tools/r8/dex/VirtualFile.java
+++ b/src/main/java/com/android/tools/r8/dex/VirtualFile.java
@@ -53,6 +53,11 @@
 
 public class VirtualFile {
 
+  enum FillStrategy {
+    FILL_MAX,
+    LEAVE_SPACE_FOR_GROWTH,
+  }
+
   private static final int MAX_ENTRIES = (Short.MAX_VALUE << 1) + 1;
   /**
    * When distributing classes across files we aim to leave some space. The amount of space left is
@@ -156,11 +161,11 @@
     return isFull(transaction.getNumberOfMethods(), transaction.getNumberOfFields(), MAX_ENTRIES);
   }
 
-  private boolean isFilledEnough(boolean fillDexFiles) {
+  private boolean isFilledEnough(FillStrategy fillStrategy) {
     return isFull(
         transaction.getNumberOfMethods(),
         transaction.getNumberOfFields(),
-        fillDexFiles ? MAX_ENTRIES : MAX_PREFILL_ENTRIES);
+        fillStrategy == FillStrategy.FILL_MAX ? MAX_ENTRIES : MAX_PREFILL_ENTRIES);
   }
 
   public void abortTransaction() {
@@ -298,7 +303,7 @@
 
       new PackageSplitPopulator(
           nameToFileMap, classes, originalNames, null, application.dexItemFactory,
-          true, writer.namingLens)
+          FillStrategy.FILL_MAX, writer.namingLens)
           .call();
       return nameToFileMap;
     }
@@ -345,7 +350,7 @@
         newAssignments =
             new PackageSplitPopulator(
                 nameToFileMap, classes, originalNames, usedPrefixes, application.dexItemFactory,
-                false, writer.namingLens)
+                FillStrategy.LEAVE_SPACE_FOR_GROWTH, writer.namingLens)
                 .call();
         if (!newAssignments.isEmpty() && nameToFileMap.size() > 1) {
           System.err.println(" * The used package map is missing entries. The following default "
@@ -735,7 +740,7 @@
     private final Map<DexProgramClass, String> originalNames;
     private final Set<String> previousPrefixes;
     private final DexItemFactory dexItemFactory;
-    private final boolean fillDexFiles;
+    private final FillStrategy fillStrategy;
     private final NamingLens namingLens;
 
     PackageSplitPopulator(
@@ -744,14 +749,14 @@
         Map<DexProgramClass, String> originalNames,
         Set<String> previousPrefixes,
         DexItemFactory dexItemFactory,
-        boolean fillDexFile,
+        FillStrategy fillStrategy,
         NamingLens namingLens) {
       this.files = files;
       this.classes = new ArrayList<>(classes);
       this.originalNames = originalNames;
       this.previousPrefixes = previousPrefixes;
       this.dexItemFactory = dexItemFactory;
-      this.fillDexFiles = fillDexFile;
+      this.fillStrategy = fillStrategy;
       this.namingLens = namingLens;
     }
 
@@ -815,7 +820,7 @@
           nonPackageClasses.add(clazz);
           continue;
         }
-        if (current.isFilledEnough(fillDexFiles) || current.isFull()) {
+        if (current.isFilledEnough(fillStrategy) || current.isFull()) {
           current.abortTransaction();
           // We allow for a final rollback that has at most 20% of classes in it.
           // This is a somewhat random number that was empirically chosen.
@@ -866,7 +871,7 @@
       VirtualFile current;
       current = activeFiles.next();
       for (DexProgramClass clazz : nonPackageClasses) {
-        if (current.isFilledEnough(fillDexFiles)) {
+        if (current.isFilledEnough(fillStrategy)) {
           current = getVirtualFile(activeFiles);
         }
         current.addClass(clazz);
@@ -888,8 +893,8 @@
     private VirtualFile getVirtualFile(Iterator<VirtualFile> activeFiles) {
       VirtualFile current = null;
       while (activeFiles.hasNext()
-          && (current = activeFiles.next()).isFilledEnough(fillDexFiles)) {}
-      if (current == null || current.isFilledEnough(fillDexFiles)) {
+          && (current = activeFiles.next()).isFilledEnough(fillStrategy)) {}
+      if (current == null || current.isFilledEnough(fillStrategy)) {
         current = new VirtualFile(files.size(), namingLens);
         files.put(files.size(), current);
       }