diff options
| -rw-r--r-- | include/mruby/presym.h | 4 | ||||
| -rw-r--r-- | mrbgems/mruby-symbol-ext/src/symbol.c | 3 |
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; |
