summaryrefslogtreecommitdiffhomepage
path: root/src/state.c
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2017-11-03 01:59:08 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2017-11-03 08:24:47 +0900
commite4662d77e75de4cc6d8e98e56bb0395cbbedbaf7 (patch)
tree12048300d64366bd65d2aebdd3eaddc057a17077 /src/state.c
parent13a318b0c70573af45f76a79f902f95845177107 (diff)
downloadmruby-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.c2
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);
}