summaryrefslogtreecommitdiffhomepage
path: root/src/symbol.c
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2019-03-27 12:53:24 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2019-03-27 12:53:24 +0900
commitb8f00e439dd0eaa8282b635bfdaff446ae52d760 (patch)
tree0fcc9f80aa34e15b0c6f10934809e81cdaf70781 /src/symbol.c
parent55986123366110a441223ad8155c95717dddbf34 (diff)
downloadmruby-b8f00e439dd0eaa8282b635bfdaff446ae52d760.tar.gz
mruby-b8f00e439dd0eaa8282b635bfdaff446ae52d760.zip
Avoid using 'mrb_str_new_static` if a symbol is packed; fix #4342
Diffstat (limited to 'src/symbol.c')
-rw-r--r--src/symbol.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/symbol.c b/src/symbol.c
index 9500e6e36..4d6c20e68 100644
--- a/src/symbol.c
+++ b/src/symbol.c
@@ -325,6 +325,10 @@ mrb_sym_to_s(mrb_state *mrb, mrb_value sym)
mrb_int len;
p = mrb_sym2name_len(mrb, id, &len);
+#ifndef MRB_ENABLE_SYMBOLL_ALL
+ if (p == mrb->symbuf)
+ return mrb_str_new(mrb, p, len);
+#endif
return mrb_str_new_static(mrb, p, len);
}