diff --git a/src/symbol.c b/src/symbol.c index 73183c65f..3916c9a10 100644 --- a/src/symbol.c +++ b/src/symbol.c @@ -94,11 +94,12 @@ sym_inline_pack(const char *name, size_t len) static const char* sym_inline_unpack(mrb_sym sym, char *buf, mrb_int *lenp) { + const size_t pack_length_max = 4; int i; mrb_assert(SYMBOL_INLINE_P(sym)); - for (i=0; i<5; i++) { + for (i=0; i>(20-i*6) & 0x3f; if (bits == 0) break; buf[i] = pack_table[bits-1];