Loading...
cache_builder/mrm_shared_cache_builder.cpp dyld-1042.1 dyld-1122.1.2
--- dyld/dyld-1042.1/cache_builder/mrm_shared_cache_builder.cpp
+++ dyld/dyld-1122.1.2/cache_builder/mrm_shared_cache_builder.cpp
@@ -62,9 +62,9 @@
     std::string                                     loggingPrefix;
     std::string                                     jsonMap;
     std::string                                     mainCacheUUID;
-    std::optional<std::string>                      customerLoggingPrefix;
-    std::optional<std::string>                      customerJsonMap;
-    std::optional<std::string>                      customerMainCacheUUID;
+    std::string                                     customerLoggingPrefix;
+    std::string                                     customerJsonMap;
+    std::string                                     customerMainCacheUUID;
     std::string                                     macOSMap;       // For compatibility with update_dyld_shared_cache's .map file
     std::string                                     macOSMapPath;   // Owns the string for the path
     std::string                                     cdHashType;     // Owns the data for the cdHashType
@@ -546,8 +546,9 @@
                                                                        cacheKind, forceDevelopmentSubCacheSuffix);
 
         options->logPrefix                   = loggingPrefix;
-        options->timePasses                  = timePasses(builder->options);
-        options->stats                       = printStats(builder->options);
+        options->debug                       = builder->options->verboseDiagnostics;
+        options->timePasses                  = options->debug ? true : timePasses(builder->options);
+        options->stats                       = options->debug ? true : printStats(builder->options);
         options->dylibOrdering               = parseOrderFile(builder->dylibOrderFileData);
         options->dirtyDataSegmentOrdering    = parseOrderFile(builder->dirtyDataOrderFileData);
         options->objcOptimizations           = parseObjcOptimizationsFile(diag, builder->objcOptimizationsFileData,
@@ -723,7 +724,7 @@
             cacheBuildResult.errors                 = buildInstance.errors.empty() ? nullptr : buildInstance.errors.data();
             cacheBuildResult.numErrors              = buildInstance.errors.size();
             cacheBuildResult.uuidString             = buildInstance.mainCacheUUID.empty() ? "" : buildInstance.mainCacheUUID.c_str();
-            cacheBuildResult.mapJSON                = buildInstance.jsonMap.c_str();
+            cacheBuildResult.mapJSON                = buildInstance.jsonMap.empty() ? "" : buildInstance.jsonMap.c_str();
 
             builder->cacheResultStorage.emplace_back(cacheBuildResult);
 
@@ -733,14 +734,14 @@
         if ( shouldEmitCustomerCache(builder->options) ) {
             CacheResult cacheBuildResult;
             cacheBuildResult.version              = 1;
-            cacheBuildResult.loggingPrefix        = buildInstance.customerLoggingPrefix->c_str();
-            cacheBuildResult.deviceConfiguration  = buildInstance.customerLoggingPrefix->c_str();
+            cacheBuildResult.loggingPrefix        = buildInstance.customerLoggingPrefix.c_str();
+            cacheBuildResult.deviceConfiguration  = buildInstance.customerLoggingPrefix.c_str();
             cacheBuildResult.warnings             = nullptr;
             cacheBuildResult.numWarnings          = 0;
             cacheBuildResult.errors               = nullptr;
             cacheBuildResult.numErrors            = 0;
-            cacheBuildResult.uuidString           = buildInstance.customerMainCacheUUID->empty() ? "" : buildInstance.customerMainCacheUUID->c_str();
-            cacheBuildResult.mapJSON              = buildInstance.customerJsonMap->c_str();
+            cacheBuildResult.uuidString           = buildInstance.customerMainCacheUUID.empty() ? "" : buildInstance.customerMainCacheUUID.c_str();
+            cacheBuildResult.mapJSON              = buildInstance.customerJsonMap.empty() ? "" : buildInstance.customerJsonMap.c_str();
 
             if ( !emittedWarningsAndErrors ) {
                 cacheBuildResult.warnings         = buildInstance.warnings.empty() ? nullptr : buildInstance.warnings.data();