Skip string and go directly to string2 from object3

This commit is contained in:
2026-06-14 17:16:45 -04:00
parent d8c9491eb3
commit 97f1d3d352
+14 -2
View File
@@ -446,13 +446,25 @@ inline PRESERVE_NONE WeaselJsonStatus n_object3(Parser3 *self, char *buf,
assert(!self->inKey); assert(!self->inKey);
self->inKey = true; self->inKey = true;
self->pop(); self->pop();
if (auto s = self->push({N_STRING, T_COLON, N_VALUE, N_OBJECT3})) { if (auto s = skipWhitespace(buf, bufEnd)) {
if (auto s2 = self->push({N_STRING, T_COLON, N_VALUE, N_OBJECT3})) {
return s2;
}
return s;
}
if (*buf != '"') [[unlikely]] {
return WeaselJson_REJECT;
}
++buf;
self->dataBegin = self->writeBuf = buf;
self->strDfa.reset();
if (auto s = self->push({N_STRING2, T_COLON, N_VALUE, N_OBJECT3})) {
return s; return s;
} }
if (buf == bufEnd) { if (buf == bufEnd) {
return WeaselJson_AGAIN; return WeaselJson_AGAIN;
} }
MUSTTAIL return n_string(self, buf, bufEnd); MUSTTAIL return n_string2(self, buf, bufEnd);
default: default:
[[unlikely]] return WeaselJson_REJECT; [[unlikely]] return WeaselJson_REJECT;
} }