From a11576816197d75fa17d959e74cabb612ba8b8be Mon Sep 17 00:00:00 2001 From: mame Date: Tue, 26 Oct 2010 17:27:32 +0000 Subject: * class.c, constant.h, gc.c, method.h, object.c, variable.c, vm_insnhelper.c: use struct rb_constant_entry_t as entry of RCLASS_CONST_TBL. RCLASS_CONST_TBL has contained VALUE of constant directly. Now instead rb_const_entry_t is contained in RCLASS_CONST_TBL, rb_const_entry_t is managed by malloc, and have not only the value itself but also visibility flag. This is another preparation for private constant (see [ruby-dev:39685][ruby-core:32698]). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29602 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- vm_insnhelper.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'vm_insnhelper.c') diff --git a/vm_insnhelper.c b/vm_insnhelper.c index 5e0a00ee92..73c9cd8570 100644 --- a/vm_insnhelper.c +++ b/vm_insnhelper.c @@ -11,6 +11,7 @@ /* finish iseq array */ #include "insns.inc" #include +#include "constant.h" /* control stack frame */ @@ -1171,7 +1172,7 @@ vm_get_ev_const(rb_thread_t *th, const rb_iseq_t *iseq, search_continue: if (RCLASS_CONST_TBL(klass) && st_lookup(RCLASS_CONST_TBL(klass), id, &data)) { - val = (st_data_t)data; + val = ((rb_const_entry_t*)data)->value; if (val == Qundef) { if (am == klass) break; am = klass; -- cgit v1.2.3