diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2017-11-03 01:59:08 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2017-11-03 08:24:47 +0900 |
| commit | e4662d77e75de4cc6d8e98e56bb0395cbbedbaf7 (patch) | |
| tree | 12048300d64366bd65d2aebdd3eaddc057a17077 /src/state.c | |
| parent | 13a318b0c70573af45f76a79f902f95845177107 (diff) | |
| download | mruby-e4662d77e75de4cc6d8e98e56bb0395cbbedbaf7.tar.gz mruby-e4662d77e75de4cc6d8e98e56bb0395cbbedbaf7.zip | |
Should not use `FSHARED` state for string from `irep` pools; fix #3829
This strings in `irep` pools may be freed forcefully in `mrb_irep_free`.
This commit probably fixes #3817 as well.
Diffstat (limited to 'src/state.c')
| -rw-r--r-- | src/state.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/state.c b/src/state.c index 44bcc0656..f4e63ab84 100644 --- a/src/state.c +++ b/src/state.c @@ -11,6 +11,7 @@ #include <mruby/variable.h> #include <mruby/debug.h> #include <mruby/string.h> +#include <mruby/class.h> void mrb_init_core(mrb_state*); void mrb_init_mrbgems(mrb_state*); @@ -222,6 +223,7 @@ mrb_str_pool(mrb_state *mrb, mrb_value str) ns->as.heap.ptr[len] = '\0'; } } + RSTR_SET_POOL_FLAG(ns); MRB_SET_FROZEN_FLAG(ns); return mrb_obj_value(ns); } |
