Loading...
libdyld/dyld_process_info_notify.cpp dyld-960 dyld-1323.3
--- dyld/dyld-960/libdyld/dyld_process_info_notify.cpp
+++ dyld/dyld-1323.3/libdyld/dyld_process_info_notify.cpp
@@ -22,6 +22,10 @@
  * @APPLE_LICENSE_HEADER_END@
  */
 
+#include <TargetConditionals.h>
+
+#if !TARGET_OS_EXCLAVEKIT
+#include <assert.h>
 #include <stdlib.h>
 #include <string.h>
 #include <limits.h>
@@ -39,6 +43,7 @@
 #include "dyld_process_info_internal.h"
 
 #include "Tracing.h"
+#include "DyldLegacyInterfaceGlue.h"
 
 extern "C" int _dyld_func_lookup(const char* name, void** address);
 
@@ -392,6 +397,9 @@
                                                    void (^notifyExit)(),
                                                    kern_return_t* kr)
 {
+    if ( const IntrospectionVtable* vtable = dyldFrameworkIntrospectionVtable() ) {
+        return vtable->_dyld_process_info_notify(task, queue, notify, notifyExit, kr);
+    }
     kern_return_t krSink = KERN_SUCCESS;
     if (kr == nullptr) {
         kr = &krSink;
@@ -401,22 +409,32 @@
     dyld_process_info_notify result = new dyld_process_info_notify_base(queue, notify, notifyExit, task, kr);
     if (result->enabled())
         return result;
-    const_cast<dyld_process_info_notify_base*>(result)->release();
+    delete result;
+   // const_cast<dyld_process_info_notify_base*>(result)->release();
     return nullptr;
 }
 
 void _dyld_process_info_notify_main(dyld_process_info_notify object, void (^notifyMain)())
 {
+    if ( const IntrospectionVtable* vtable = dyldFrameworkIntrospectionVtable() ) {
+        return vtable->_dyld_process_info_notify_main(object, notifyMain);
+    }
 	object->setNotifyMain(notifyMain);
 }
 
 void _dyld_process_info_notify_retain(dyld_process_info_notify object)
 {
+    if ( const IntrospectionVtable* vtable = dyldFrameworkIntrospectionVtable() ) {
+        return vtable->_dyld_process_info_notify_retain(object);
+    }
     const_cast<dyld_process_info_notify_base*>(object)->retain();
 }
 
 void _dyld_process_info_notify_release(dyld_process_info_notify object)
 {
+    if ( const IntrospectionVtable* vtable = dyldFrameworkIntrospectionVtable() ) {
+        return vtable->_dyld_process_info_notify_release(object);
+    }
     const_cast<dyld_process_info_notify_base*>(object)->release();
 }
 
@@ -436,6 +454,4 @@
     sNotifyMonitoringDyld = func;
 }
 
-
-
-
+#endif // !TARGET_OS_EXCLAVEKIT