Prevent regression from creating unnecessary BuildOptions instances. Only create
new instances when actually necessary.

RELNOTES: None.
PiperOrigin-RevId: 243090646
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/config/ConfigurationResolver.java b/src/main/java/com/google/devtools/build/lib/analysis/config/ConfigurationResolver.java
index 40f9805..b918b88 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/config/ConfigurationResolver.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/config/ConfigurationResolver.java
@@ -494,14 +494,17 @@
 
   private static BuildOptions addDefaultStarlarkOptions(
       BuildOptions fromOptions, ImmutableMap<Label, Object> buildSettingDefaults) {
-    BuildOptions.Builder optionsWithDefaults = fromOptions.toBuilder();
+    BuildOptions.Builder optionsWithDefaults = null;
     for (Map.Entry<Label, Object> buildSettingDefault : buildSettingDefaults.entrySet()) {
       Label buildSetting = buildSettingDefault.getKey();
-      if (!optionsWithDefaults.contains(buildSetting)) {
+      if (!fromOptions.getStarlarkOptions().containsKey(buildSetting)) {
+        if (optionsWithDefaults == null) {
+          optionsWithDefaults = fromOptions.toBuilder();
+        }
         optionsWithDefaults.addStarlarkOption(buildSetting, buildSettingDefault.getValue());
       }
     }
-    return optionsWithDefaults.build();
+    return optionsWithDefaults == null ? fromOptions : optionsWithDefaults.build();
   }
 
   /**