[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