From 6ce526c1fb74c032150c1cf99cc01fec6c489047 Mon Sep 17 00:00:00 2001 From: akr Date: Sat, 29 Sep 2007 01:21:15 +0000 Subject: * variable.c (rb_ivar_set): fix class instance variable. * object.c (rb_class_real): cl argument may be 0. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@13563 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 6 ++++++ object.c | 2 ++ variable.c | 1 + 3 files changed, 9 insertions(+) diff --git a/ChangeLog b/ChangeLog index 24363fe6d..728bc7a25 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +Sat Sep 29 10:12:20 2007 Tanaka Akira + + * variable.c (rb_ivar_set): fix class instance variable. + + * object.c (rb_class_real): cl argument may be 0. + Sat Sep 29 09:12:02 2007 Tanaka Akira * object.c (rb_class_real): use BUILTIN_TYPE instead of TYPE. diff --git a/object.c b/object.c index a6ded5672..031d2afdc 100644 --- a/object.c +++ b/object.c @@ -99,6 +99,8 @@ rb_obj_equal(VALUE obj1, VALUE obj2) VALUE rb_class_real(VALUE cl) { + if (cl == 0) + return 0; while ((RBASIC(cl)->flags & FL_SINGLETON) || BUILTIN_TYPE(cl) == T_ICLASS) { cl = RCLASS_SUPER(cl); } diff --git a/variable.c b/variable.c index d5c3bfe10..16859c2ca 100644 --- a/variable.c +++ b/variable.c @@ -1027,6 +1027,7 @@ rb_ivar_set(VALUE obj, ID id, VALUE val) case T_MODULE: if (!RCLASS_IV_TBL(obj)) RCLASS_IV_TBL(obj) = st_init_numtable(); st_insert(RCLASS_IV_TBL(obj), id, val); + break; default: generic_ivar_set(obj, id, val); break; -- cgit