diff options
| author | Daniel Bovensiepen <[email protected]> | 2013-01-08 10:07:55 +0800 |
|---|---|---|
| committer | Daniel Bovensiepen <[email protected]> | 2013-01-08 10:07:55 +0800 |
| commit | a096dc9e3b01f4fc31fc1f910e254813884a776e (patch) | |
| tree | cd353be9cb1df5e009d130ceabfcd627e7fb34a7 /src/variable.c | |
| parent | af75d8de2ca6b3eda97c588334b15920e856a53b (diff) | |
| parent | 8c31c2006be7afa8da1fd01180955b108aee868c (diff) | |
| download | mruby-a096dc9e3b01f4fc31fc1f910e254813884a776e.tar.gz mruby-a096dc9e3b01f4fc31fc1f910e254813884a776e.zip | |
Merge remote-tracking branch 'mruby/master' into array-clear
Diffstat (limited to 'src/variable.c')
| -rw-r--r-- | src/variable.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/variable.c b/src/variable.c index 5d46ffc60..6aa6e71bd 100644 --- a/src/variable.c +++ b/src/variable.c @@ -710,6 +710,7 @@ mrb_mod_cv_set(mrb_state *mrb, struct RClass * c, mrb_sym sym, mrb_value v) iv_tbl *t = c->iv; if (iv_get(mrb, t, sym, NULL)) { + mrb_write_barrier(mrb, (struct RBasic*)c); iv_put(mrb, t, sym, v); return; } @@ -721,6 +722,7 @@ mrb_mod_cv_set(mrb_state *mrb, struct RClass * c, mrb_sym sym, mrb_value v) cls->iv = iv_new(mrb); } + mrb_write_barrier(mrb, (struct RBasic*)cls); iv_put(mrb, cls->iv, sym, v); } @@ -771,6 +773,7 @@ mrb_vm_cv_set(mrb_state *mrb, mrb_sym sym, mrb_value v) iv_tbl *t = c->iv; if (iv_get(mrb, t, sym, NULL)) { + mrb_write_barrier(mrb, (struct RBasic*)c); iv_put(mrb, t, sym, v); return; } @@ -781,6 +784,7 @@ mrb_vm_cv_set(mrb_state *mrb, mrb_sym sym, mrb_value v) if (!c->iv) { c->iv = iv_new(mrb); } + mrb_write_barrier(mrb, (struct RBasic*)c); iv_put(mrb, c->iv, sym, v); } |
