summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2020-11-26 10:32:19 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2020-11-26 10:32:19 +0900
commit66f2e733e52bc03f17f9b5e6913cee2ad116e03b (patch)
tree131977e57637e1b54b659fea290599218f44215d
parenta33f9d7b651aa62ecc22ed4facf01b9aa8ef03b0 (diff)
downloadmruby-66f2e733e52bc03f17f9b5e6913cee2ad116e03b.tar.gz
mruby-66f2e733e52bc03f17f9b5e6913cee2ad116e03b.zip
Symbols should work with `MRB_USE_ALL_SYMBOLS`; fix #5116
-rw-r--r--include/mruby/presym.h4
-rw-r--r--mrbgems/mruby-symbol-ext/src/symbol.c3
2 files changed, 5 insertions, 2 deletions
diff --git a/include/mruby/presym.h b/include/mruby/presym.h
index 61e5bc8cb..fd08a24da 100644
--- a/include/mruby/presym.h
+++ b/include/mruby/presym.h
@@ -8,7 +8,11 @@
#define MRUBY_PRESYM_H
#undef MRB_PRESYM_MAX
+#ifdef MRB_USE_ALL_SYMBOLS
+#define MRB_PRESYM_NAMED(lit, num, type, name) MRB_##type##__##name = (num),
+#else
#define MRB_PRESYM_NAMED(lit, num, type, name) MRB_##type##__##name = (num<<1),
+#endif
#define MRB_PRESYM_UNNAMED(lit, num)
enum mruby_presym {
diff --git a/mrbgems/mruby-symbol-ext/src/symbol.c b/mrbgems/mruby-symbol-ext/src/symbol.c
index b4dbbf128..d0ea52946 100644
--- a/mrbgems/mruby-symbol-ext/src/symbol.c
+++ b/mrbgems/mruby-symbol-ext/src/symbol.c
@@ -26,8 +26,7 @@ mrb_sym_all_symbols(mrb_state *mrb, mrb_value self)
mrb_value ary = mrb_ary_new_capa(mrb, mrb->symidx);
for (i=1, lim=mrb->symidx+1; i<lim; i++) {
- mrb_sym sym = i<<1;
- mrb_ary_push(mrb, ary, mrb_symbol_value(sym));
+ mrb_ary_push(mrb, ary, mrb_symbol_value(i+MRB_PRESYM_MAX));
}
return ary;