diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2015-06-29 18:33:46 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2015-06-29 18:33:46 +0900 |
| commit | 1c2fc94c207ab4d4a43d701e7a784fddd3328cad (patch) | |
| tree | 30062490e31cfec9c462050cefe636a134e2ecc0 /src/proc.c | |
| parent | b0ec992d4170ed06bd96020edbc889a224b23be1 (diff) | |
| parent | 52db92de53a9af1adbac9e116bd19aeecd2485c1 (diff) | |
| download | mruby-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.c | 1 |
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) { |
