summaryrefslogtreecommitdiff
path: root/variable.c
diff options
context:
space:
mode:
Diffstat (limited to 'variable.c')
-rw-r--r--variable.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/variable.c b/variable.c
index 778778c866..a2f485a9d4 100644
--- a/variable.c
+++ b/variable.c
@@ -3407,14 +3407,17 @@ rb_cvar_set(VALUE klass, ID id, VALUE val)
}
struct rb_cvar_class_tbl_entry *ent;
+ VALUE ent_data;
- if (!rb_id_table_lookup(rb_cvc_tbl, id, (VALUE*)&ent)) {
+ if (!rb_id_table_lookup(rb_cvc_tbl, id, &ent_data)) {
ent = ALLOC(struct rb_cvar_class_tbl_entry);
ent->class_value = target;
ent->global_cvar_state = GET_GLOBAL_CVAR_STATE();
rb_id_table_insert(rb_cvc_tbl, id, (VALUE)ent);
RB_DEBUG_COUNTER_INC(cvar_inline_miss);
- } else {
+ }
+ else {
+ ent = (void *)ent_data;
ent->global_cvar_state = GET_GLOBAL_CVAR_STATE();
}