Fix keep wrong symbol index when out of memory

This commit is contained in:
dearblue
2019-01-20 02:12:24 +09:00
parent 3f8e2b3752
commit 15e67297ff
+2 -1
View File
@@ -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;