diff --git a/src/parser3.h b/src/parser3.h index 214e9f1..93b5e0e 100644 --- a/src/parser3.h +++ b/src/parser3.h @@ -1144,6 +1144,7 @@ inline PRESERVE_NONE WeaselJsonStatus n_string2(Parser3 *self, char *buf, inline PRESERVE_NONE WeaselJsonStatus n_string_following_escape(Parser3 *self, char *buf, char *bufEnd) { + assert(self->strDfa.accept()); switch (*buf) { case '"': case '\\': @@ -1155,7 +1156,6 @@ inline PRESERVE_NONE WeaselJsonStatus n_string_following_escape(Parser3 *self, case 't': *self->writeBuf++ = tables.unescape[uint8_t(*buf++)]; self->pop(); - self->strDfa.reset(); if (auto s = self->push({N_STRING2})) { return s; } @@ -1164,7 +1164,6 @@ inline PRESERVE_NONE WeaselJsonStatus n_string_following_escape(Parser3 *self, ++buf; self->utf8Codepoint = 0; self->pop(); - self->strDfa.reset(); if (auto s = self->push({T_HEX, T_HEX, T_HEX, T_HEX2, N_STRING2})) { return s; }