summaryrefslogtreecommitdiff
path: root/vm_insnhelper.c
diff options
context:
space:
mode:
authormame <mame@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2010-10-26 17:27:32 +0000
committermame <mame@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2010-10-26 17:27:32 +0000
commita11576816197d75fa17d959e74cabb612ba8b8be (patch)
tree22614a970841b61b3ac1bac4dca118b5561e4ed2 /vm_insnhelper.c
parente169ea0cacc981c506f75a2d3e093558e599d21d (diff)
* 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
Diffstat (limited to 'vm_insnhelper.c')
-rw-r--r--vm_insnhelper.c3
1 files changed, 2 insertions, 1 deletions
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 <math.h>
+#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;