diff options
author | ko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-05-19 03:08:50 +0000 |
---|---|---|
committer | ko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-05-19 03:08:50 +0000 |
commit | 385f0e8af657b1334e477e6837b0846cc14fa00d (patch) | |
tree | c0b84dcfa47e0a9b3811ec64bcfad453b03b723b /gc.c | |
parent | 2e5e857a0bea7f0d784448550e9182c4cc477ee2 (diff) | |
download | ruby-385f0e8af657b1334e477e6837b0846cc14fa00d.tar.gz |
* vm.c, insns.def, eval.c, vm_insnhelper.c: fix CREF handling.
VM value stack frame of block contains cref information.
(dfp[-1] points CREF)
* compile.c, eval_intern.h, eval_method.c, load.c, proc.c,
vm_dump.h, vm_core.h: ditto.
* include/ruby/ruby.h, gc.c: remove T_VALUES because of above
changes.
* bootstraptest/test_eval.rb, test_knownbug.rb: move solved test.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16468 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'gc.c')
-rw-r--r-- | gc.c | 15 |
1 files changed, 1 insertions, 14 deletions
@@ -1280,15 +1280,6 @@ gc_mark_children(rb_objspace_t *objspace, VALUE ptr, int lev) } break; - case T_VALUES: - { - rb_gc_mark(RVALUES(obj)->v1); - rb_gc_mark(RVALUES(obj)->v2); - ptr = RVALUES(obj)->v3; - goto again; - } - break; - default: rb_bug("rb_gc_mark(): unknown data type 0x%lx(%p) %s", obj->as.basic.flags & T_MASK, obj, @@ -1531,8 +1522,6 @@ obj_free(rb_objspace_t *objspace, VALUE obj) case T_FLOAT: break; - case T_VALUES: - break; case T_BIGNUM: if (!(RBASIC(obj)->flags & RBIGNUM_EMBED_FLAG) && RBIGNUM_DIGITS(obj)) { @@ -1878,7 +1867,6 @@ os_obj_of(rb_objspace_t *objspace, VALUE of) case T_NONE: case T_ICLASS: case T_NODE: - case T_VALUES: continue; case T_CLASS: if (FL_TEST(p, FL_SINGLETON)) continue; @@ -2175,7 +2163,7 @@ id2ref(VALUE obj, VALUE objid) } if (!is_pointer_to_heap(objspace, (void *)ptr) || - BUILTIN_TYPE(ptr) >= T_VALUES || BUILTIN_TYPE(ptr) == T_ICLASS) { + BUILTIN_TYPE(ptr) > T_FIXNUM || BUILTIN_TYPE(ptr) == T_ICLASS) { rb_raise(rb_eRangeError, "%p is not id value", p0); } if (BUILTIN_TYPE(ptr) == 0 || RBASIC(ptr)->klass == 0) { @@ -2334,7 +2322,6 @@ count_objects(int argc, VALUE *argv, VALUE os) COUNT_TYPE(T_FALSE); COUNT_TYPE(T_SYMBOL); COUNT_TYPE(T_FIXNUM); - COUNT_TYPE(T_VALUES); COUNT_TYPE(T_UNDEF); COUNT_TYPE(T_NODE); COUNT_TYPE(T_ICLASS); |