From 84c5d35b9e95e1baaa1a28fcf23981068b075621 Mon Sep 17 00:00:00 2001 From: Yukihiro Matsumoto Date: Tue, 29 May 2012 23:00:45 +0900 Subject: class variable table intialization bug; close #206 --- src/variable.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src/variable.c') diff --git a/src/variable.c b/src/variable.c index 1f1a400cd..82ab7bef3 100644 --- a/src/variable.c +++ b/src/variable.c @@ -186,12 +186,16 @@ mrb_vm_cv_set(mrb_state *mrb, mrb_sym sym, mrb_value v) if (k != kh_end(h)) { k = kh_put(iv, h, sym); kh_value(h, k) = v; + return; } } c = c->super; } c = mrb->ci->target_class; - h = c->iv = kh_init(iv, mrb); + h = c->iv; + if (!h) { + c->iv = h = kh_init(iv, mrb); + } k = kh_put(iv, h, sym); kh_value(h, k) = v; } -- cgit v1.2.3