diff options
author | ko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-05-24 02:47:22 +0000 |
---|---|---|
committer | ko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-05-24 02:47:22 +0000 |
commit | 7d200b94f946f0caffa3ea3a72783855e421df32 (patch) | |
tree | 5d2bbd9c33fb0344da8aae6f8a2f3aed0565a9de /gc.c | |
parent | 7c4ff2d3322753479b3974105e5100b6f4e43001 (diff) | |
download | ruby-7d200b94f946f0caffa3ea3a72783855e421df32.tar.gz |
* gc.c, yarvcore.c: fix to mark VM structure on startup.
* yarvcore.h: disable USE_CACHED_VALUE.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12381 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'gc.c')
-rw-r--r-- | gc.c | 7 |
1 files changed, 4 insertions, 3 deletions
@@ -504,7 +504,7 @@ rb_fill_value_cache(rb_thread_t *th) VALUE rb_newobj(void) { -#if USE_VALUE_CACHE && 1 +#if USE_VALUE_CACHE rb_thread_t *th = GET_THREAD(); VALUE v = *th->value_cache_ptr; @@ -1333,6 +1333,8 @@ int rb_setjmp (rb_jmp_buf); #define GC_NOTIFY 0 +void rb_vm_mark(void *ptr); + static int garbage_collect(void) { @@ -1358,8 +1360,7 @@ garbage_collect(void) init_mark_stack(); - rb_gc_mark(th->vm->self); - rb_gc_mark(th->vm->mark_object_ary); + th->vm->self ? rb_gc_mark(th->vm->self) : rb_vm_mark(th->vm); if (finalizer_table) { mark_tbl(finalizer_table, 0); |