[macruby-changes] [2861] MacRuby/trunk

source_changes at macosforge.org source_changes at macosforge.org
Mon Oct 19 20:15:46 PDT 2009


Revision: 2861
          http://trac.macosforge.org/projects/ruby/changeset/2861
Author:   lsansonetti at apple.com
Date:     2009-10-19 20:15:43 -0700 (Mon, 19 Oct 2009)
Log Message:
-----------
move some non-critical code out of vm.h

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

Modified: MacRuby/trunk/vm.cpp
===================================================================
--- MacRuby/trunk/vm.cpp	2009-10-19 23:44:00 UTC (rev 2860)
+++ MacRuby/trunk/vm.cpp	2009-10-20 03:15:43 UTC (rev 2861)
@@ -1088,10 +1088,39 @@
     GET_CORE()->const_defined(path);
 }
 
+struct rb_vm_outer *
+RoxorCore::get_outer(Class klass)
+{
+    std::map<Class, struct rb_vm_outer *>::iterator iter =
+	outers.find(klass);
+    return iter == outers.end() ? NULL : iter->second;
+}
+
+void
+RoxorCore::set_outer(Class klass, Class mod) 
+{
+    struct rb_vm_outer *mod_outer = get_outer(mod);
+    struct rb_vm_outer *class_outer = get_outer(klass);
+    if (class_outer == NULL || class_outer->outer != mod_outer) {
+	if (class_outer != NULL) {
+	    free(class_outer);
+	}
+	class_outer = (struct rb_vm_outer *)
+	    malloc(sizeof(struct rb_vm_outer));
+	class_outer->klass = klass;
+	class_outer->outer = mod_outer;
+	outers[klass] = class_outer;
+    }
+}
+
 extern "C"
 void
 rb_vm_set_outer(VALUE klass, VALUE under)
 {
+#if ROXOR_VM_DEBUG
+    printf("set outer of %s to %s\n", class_getName((Class)klass),
+	    class_getName((Class)under));
+#endif
     GET_CORE()->set_outer((Class)klass, (Class)under);
 }
 

Modified: MacRuby/trunk/vm.h
===================================================================
--- MacRuby/trunk/vm.h	2009-10-19 23:44:00 UTC (rev 2860)
+++ MacRuby/trunk/vm.h	2009-10-20 03:15:43 UTC (rev 2861)
@@ -736,27 +736,9 @@
 	void each_ivar_slot(VALUE obj, int (*func)(ANYARGS), void *ctx);
 	bool class_can_have_ivar_slots(VALUE klass);
 
-	struct rb_vm_outer *get_outer(Class klass) {
-	    std::map<Class, struct rb_vm_outer *>::iterator iter =
-		outers.find(klass);
-	    return iter == outers.end() ? NULL : iter->second;
-	}
+	struct rb_vm_outer *get_outer(Class klass);
+	void set_outer(Class klass, Class mod);
 
-	void set_outer(Class klass, Class mod) {
-	    struct rb_vm_outer *mod_outer = get_outer(mod);
-	    struct rb_vm_outer *class_outer = get_outer(klass);
-	    if (class_outer == NULL || class_outer->outer != mod_outer) {
-		if (class_outer != NULL) {
-		    free(class_outer);
-		}
-		class_outer = (struct rb_vm_outer *)
-		    malloc(sizeof(struct rb_vm_outer));
-		class_outer->klass = klass;
-		class_outer->outer = mod_outer;
-		outers[klass] = class_outer;
-	    }
-	}
-
 	size_t get_sizeof(const Type *type);
 	size_t get_sizeof(const char *type);
 	bool is_large_struct_type(const Type *type);
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macruby-changes/attachments/20091019/ca96e291/attachment.html>


More information about the macruby-changes mailing list