diff --git a/src/parser3.h b/src/parser3.h index e1cbe5a..e08390f 100644 --- a/src/parser3.h +++ b/src/parser3.h @@ -278,8 +278,7 @@ inline WeaselJsonStatus n_object3(Parser3 *self) { case ',': ++self->buf; self->pop(); - if (auto s = - self->push({N_WHITESPACE, N_STRING, T_COLON, N_VALUE, N_OBJECT3})) { + if (auto s = self->push({N_STRING, T_COLON, N_VALUE, N_OBJECT3})) { return s; } MUSTTAIL return Parser3::keepGoing(self); @@ -351,6 +350,13 @@ inline WeaselJsonStatus n_array3(Parser3 *self) { } inline WeaselJsonStatus n_string(Parser3 *self) { + assert(self->len() != 0); + while (tables.whitespace[uint8_t(*self->buf)]) { + ++self->buf; + if (self->buf == self->bufEnd) { + return WeaselJson_AGAIN; + } + } if (*self->buf != '"') { return WeaselJson_REJECT; }