diff --git a/ChangeLog b/ChangeLog index d9ab9bb9bb..da3df62d56 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +Wed Aug 15 18:57:30 2007 Koichi Sasada + + * gc.c (os_live_obj): fix to skip T_VALUES. + + * sample/test.rb: add an ObjectSpace test. + Wed Aug 15 16:49:04 2007 Koichi Sasada * inits.c (rb_call_inits): change initializing order. diff --git a/gc.c b/gc.c index 7a646a160f..f187b06820 100644 --- a/gc.c +++ b/gc.c @@ -1698,6 +1698,7 @@ os_live_obj(void) switch (TYPE(p)) { case T_ICLASS: case T_NODE: + case T_VALUES: continue; case T_CLASS: if (FL_TEST(p, FL_SINGLETON)) continue; diff --git a/sample/test.rb b/sample/test.rb index 62695efbce..6dffa609dc 100644 --- a/sample/test.rb +++ b/sample/test.rb @@ -2215,6 +2215,11 @@ l = [] GC.start test_ok true # reach here or dumps core +ObjectSpace.each_object{|o| + o.class.name +} +test_ok true # reach here or dumps core + if $failed > 0 printf "not ok/test: %d failed %d\n", $ntest, $failed else