[macruby-changes] [4926] MacRuby/trunk

source_changes at macosforge.org source_changes at macosforge.org
Sun Nov 21 22:37:33 PST 2010


Revision: 4926
          http://trac.macosforge.org/projects/ruby/changeset/4926
Author:   lsansonetti at apple.com
Date:     2010-11-21 22:37:29 -0800 (Sun, 21 Nov 2010)
Log Message:
-----------
Xcode MacRuby apps will load the BridgeSupport files of frameworks linked into the product's executable by default

Modified Paths:
--------------
    MacRuby/trunk/MacRuby.m
    MacRuby/trunk/objc.h
    MacRuby/trunk/objc.m
    MacRuby/trunk/vm.cpp

Modified: MacRuby/trunk/MacRuby.m
===================================================================
--- MacRuby/trunk/MacRuby.m	2010-11-21 15:38:02 UTC (rev 4925)
+++ MacRuby/trunk/MacRuby.m	2010-11-22 06:37:29 UTC (rev 4926)
@@ -32,6 +32,7 @@
 	    rb_vm_init_compiler();
 	    rb_vm_init_jit();
 	    rb_objc_fix_relocatable_load_path();
+	    rb_objc_load_loaded_frameworks_bridgesupport();
 	}
     }
     return runtime;

Modified: MacRuby/trunk/objc.h
===================================================================
--- MacRuby/trunk/objc.h	2010-11-21 15:38:02 UTC (rev 4925)
+++ MacRuby/trunk/objc.h	2010-11-22 06:37:29 UTC (rev 4926)
@@ -254,6 +254,7 @@
 bool rb_objc_isEqual(VALUE x, VALUE y); 
 void rb_objc_force_class_initialize(Class klass);
 void rb_objc_fix_relocatable_load_path(void);
+void rb_objc_load_loaded_frameworks_bridgesupport(void);
 
 extern bool rb_objc_enable_ivar_set_kvo_notifications;
 

Modified: MacRuby/trunk/objc.m
===================================================================
--- MacRuby/trunk/objc.m	2010-11-21 15:38:02 UTC (rev 4925)
+++ MacRuby/trunk/objc.m	2010-11-22 06:37:29 UTC (rev 4926)
@@ -687,6 +687,19 @@
 }
 
 void
+rb_objc_load_loaded_frameworks_bridgesupport(void)
+{
+#if !defined(MACRUBY_STATIC)
+    for (NSBundle *b in [NSBundle allFrameworks]) {
+	if ([b isLoaded]) {
+	    NSString *path = [b bundlePath];
+	    rb_objc_search_and_load_bridge_support([path fileSystemRepresentation]);	
+	}
+    }
+#endif
+}
+
+void
 rb_objc_willChangeValueForKey(id obj, NSString *key)
 {
     [obj willChangeValueForKey:key];

Modified: MacRuby/trunk/vm.cpp
===================================================================
--- MacRuby/trunk/vm.cpp	2010-11-21 15:38:02 UTC (rev 4925)
+++ MacRuby/trunk/vm.cpp	2010-11-22 06:37:29 UTC (rev 4926)
@@ -4996,6 +4996,7 @@
 	free(p1);
 	free(p2);
 	rb_objc_fix_relocatable_load_path();
+	rb_objc_load_loaded_frameworks_bridgesupport();
 	return ruby_run_node(tree);
     }
     catch (...) {
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macruby-changes/attachments/20101121/39f8bc54/attachment.html>


More information about the macruby-changes mailing list