Revision: 184 http://trac.macosforge.org/projects/ruby/changeset/184 Author: lsansonetti@apple.com Date: 2008-05-01 16:31:28 -0700 (Thu, 01 May 2008) Log Message: ----------- fixing ivar lookup for pure objc objects, fixing #34 Modified Paths: -------------- MacRuby/trunk/variable.c Modified: MacRuby/trunk/variable.c =================================================================== --- MacRuby/trunk/variable.c 2008-05-01 23:12:24 UTC (rev 183) +++ MacRuby/trunk/variable.c 2008-05-01 23:31:28 UTC (rev 184) @@ -287,7 +287,7 @@ char * rb_class2name(VALUE klass) { - return RSTRING_CPTR(rb_class_name(klass)); + return (char *)RSTRING_CPTR(rb_class_name(klass)); } char * @@ -1149,26 +1149,28 @@ void rb_ivar_foreach(VALUE obj, int (*func)(ANYARGS), st_data_t arg) { +#if WITH_OBJC + if (!rb_objc_is_non_native(obj)) +#endif switch (TYPE(obj)) { case T_OBJECT: obj_ivar_each(obj, func, arg); - break; + return; case T_CLASS: case T_MODULE: if (RCLASS_IV_TBL(obj)) { st_foreach_safe(RCLASS_IV_TBL(obj), func, arg); } - break; - default: - if (!generic_iv_tbl) break; - if (FL_TEST(obj, FL_EXIVAR) || rb_special_const_p(obj)) { - st_data_t tbl; + return; + } + if (!generic_iv_tbl) + return; + if (FL_TEST(obj, FL_EXIVAR) || rb_special_const_p(obj)) { + st_data_t tbl; - if (st_lookup(generic_iv_tbl, obj, &tbl)) { - st_foreach_safe((st_table *)tbl, func, arg); - } + if (st_lookup(generic_iv_tbl, obj, &tbl)) { + st_foreach_safe((st_table *)tbl, func, arg); } - break; } }
participants (1)
-
source_changes@macosforge.org