From a7b50be35be6d594423290043f68822f54593c5a Mon Sep 17 00:00:00 2001 From: KOBAYASHI Shuji Date: Wed, 25 Nov 2020 10:17:52 +0900 Subject: Fix C source compilation with `MRB_USE_ALL_SYMBOLS`; ref #5187 However, compiling by `mrbc` fails with another issue (#5116). --- doc/guides/mrbconf.md | 2 +- src/symbol.c | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/doc/guides/mrbconf.md b/doc/guides/mrbconf.md index fdf24b98c..d01eff258 100644 --- a/doc/guides/mrbconf.md +++ b/doc/guides/mrbconf.md @@ -168,5 +168,5 @@ largest value of required alignment. * Define this macro on machines that use higher bits of pointers `MRB_USE_ALL_SYMBOLS` -* Make it available `Symbols.all_symbols` in `mrbgems/mruby-symbol-ext` +* Make it available `Symbol.all_symbols` in `mrbgems/mruby-symbol-ext` * Increase heap memory usage. diff --git a/src/symbol.c b/src/symbol.c index c94f6f239..ebb269206 100644 --- a/src/symbol.c +++ b/src/symbol.c @@ -311,7 +311,7 @@ sym2name_len(mrb_state *mrb, mrb_sym sym, char *buf, mrb_int *lenp) if (name) return name; } sym -= MRB_PRESYM_MAX; - + if (sym == 0 || mrb->symidx < sym) { if (lenp) *lenp = 0; return NULL; @@ -324,7 +324,11 @@ sym2name_len(mrb_state *mrb, mrb_sym sym, char *buf, mrb_int *lenp) MRB_API const char* mrb_sym_name_len(mrb_state *mrb, mrb_sym sym, mrb_int *lenp) { +#ifdef MRB_USE_ALL_SYMBOLS + return sym2name_len(mrb, sym, NULL, lenp); +#else return sym2name_len(mrb, sym, mrb->symbuf, lenp); +#endif } mrb_bool -- cgit v1.2.3