[macruby-changes] [4545] MacRuby/trunk/vm.cpp

source_changes at macosforge.org source_changes at macosforge.org
Mon Sep 27 16:05:32 PDT 2010


Revision: 4545
          http://trac.macosforge.org/projects/ruby/changeset/4545
Author:   lsansonetti at apple.com
Date:     2010-09-27 16:05:30 -0700 (Mon, 27 Sep 2010)
Log Message:
-----------
don't invalidate respond_to and dispatch caches while we are still booting the runtime

Modified Paths:
--------------
    MacRuby/trunk/vm.cpp

Modified: MacRuby/trunk/vm.cpp
===================================================================
--- MacRuby/trunk/vm.cpp	2010-09-27 22:55:31 UTC (rev 4544)
+++ MacRuby/trunk/vm.cpp	2010-09-27 23:05:30 UTC (rev 4545)
@@ -1018,15 +1018,15 @@
 	ruby_imps[ruby_imp] = node;
     }
 
-    // Invalidate respond_to cache.
-    invalidate_respond_to_cache();
+    if (running) {
+	// Invalidate respond_to cache.
+	invalidate_respond_to_cache();
 
-    // Invalidate dispatch cache.
-    invalidate_method_cache(sel);
+	// Invalidate dispatch cache.
+	invalidate_method_cache(sel);
 
-    // Invalidate inline operations.
+	// Invalidate inline operations.
 #if !defined(MACRUBY_STATIC)
-    if (running) {
 	GlobalVariable *gvar = redefined_op_gvar(sel, false);
 	if (gvar != NULL && should_invalidate_inline_op(sel, klass)) {
 	    void *val = ee->getOrEmitGlobalVariable(gvar);
@@ -1038,8 +1038,8 @@
 	    assert(val != NULL);
 	    *(unsigned char *)val = 1;
 	}
+#endif
     }
-#endif
 
     // If alloc is redefined, mark the class as such.
     if (sel == selAlloc
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macruby-changes/attachments/20100927/e04fe841/attachment.html>


More information about the macruby-changes mailing list