Loading...
dyld3/ClosureBuilder.cpp dyld-640.2 dyld-655.1
--- dyld/dyld-640.2/dyld3/ClosureBuilder.cpp
+++ dyld/dyld-655.1/dyld3/ClosureBuilder.cpp
@@ -1724,6 +1724,9 @@
     for (uint32_t i=0; i <= _mainProgLoadIndex; ++i)
         computeInitOrder(writers[i], i);
 
+    if ( _diag.hasError() )
+        return nullptr;
+
     // combine all Image objects into one ImageArray
     ImageArrayWriter imageArrayWriter(_startImageNum, (uint32_t)writers.count());
     for (ImageWriter& writer : writers) {
@@ -1969,6 +1972,9 @@
         }
     }
 
+    if ( _diag.hasError() )
+        return nullptr;
+
     // check if top image loaded is in shared cache along with everything it depends on
     *topImageNum = foundTopImage->imageNum;
     if ( writers.count() == 0 ) {
@@ -1981,6 +1987,9 @@
 
     // add initializer order into top level Image
     computeInitOrder(writers[0], (uint32_t)alreadyLoadedList.count());
+
+    if ( _diag.hasError() )
+        return nullptr;
 
     // combine all Image objects into one ImageArray
     ImageArrayWriter imageArrayWriter(_startImageNum, (uint32_t)writers.count());