From 15e67297ff54bc14ef359d6d1e745d760a4a255a Mon Sep 17 00:00:00 2001 From: dearblue Date: Sun, 20 Jan 2019 02:12:24 +0900 Subject: [PATCH] Fix keep wrong symbol index when out of memory --- src/symbol.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/symbol.c b/src/symbol.c index 788512423..f91bfeda3 100644 --- a/src/symbol.c +++ b/src/symbol.c @@ -65,7 +65,7 @@ sym_intern(mrb_state *mrb, const char *name, size_t len, mrb_bool lit) } /* registering a new symbol */ - sym = ++mrb->symidx; + sym = mrb->symidx + 1; if (mrb->symcapa < sym) { size_t symcapa = mrb->symcapa; if (symcapa == 0) symcapa = 100; @@ -86,6 +86,7 @@ sym_intern(mrb_state *mrb, const char *name, size_t len, mrb_bool lit) sname->name = (const char*)p; sname->lit = FALSE; } + mrb->symidx = sym; kh_put(n2s, mrb, h, sym); return sym;