summaryrefslogtreecommitdiffhomepage
path: root/src/proc.c
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2015-06-29 18:33:46 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2015-06-29 18:33:46 +0900
commit1c2fc94c207ab4d4a43d701e7a784fddd3328cad (patch)
tree30062490e31cfec9c462050cefe636a134e2ecc0 /src/proc.c
parentb0ec992d4170ed06bd96020edbc889a224b23be1 (diff)
parent52db92de53a9af1adbac9e116bd19aeecd2485c1 (diff)
downloadmruby-1c2fc94c207ab4d4a43d701e7a784fddd3328cad.tar.gz
mruby-1c2fc94c207ab4d4a43d701e7a784fddd3328cad.zip
Merge pull request #2867 from kou/proc-fix-gc-crash
Fix a crash bug when GC is ran while creating a proc with env
Diffstat (limited to 'src/proc.c')
-rw-r--r--src/proc.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/proc.c b/src/proc.c
index f98998f68..8a2b6bbb6 100644
--- a/src/proc.c
+++ b/src/proc.c
@@ -93,6 +93,7 @@ mrb_proc_new_cfunc_with_env(mrb_state *mrb, mrb_func_t func, mrb_int argc, const
int i;
p->env = e = env_new(mrb, argc);
+ mrb_field_write_barrier(mrb, (struct RBasic *)p, (struct RBasic *)p->env);
MRB_ENV_UNSHARE_STACK(e);
e->stack = (mrb_value*)mrb_malloc(mrb, sizeof(mrb_value) * argc);
if (argv) {