Skip over n_string when you know it matches

This commit is contained in:
2025-05-22 11:45:57 -04:00
parent 56f6ab6566
commit 3635f5cf18

View File

@@ -174,8 +174,11 @@ inline WeaselJsonStatus n_value(Parser3 *self) {
} }
break; break;
case '"': case '"':
self->callbacks->on_begin_string(self->data);
++self->buf;
self->dataBegin = self->writeBuf = self->buf;
self->pop(); self->pop();
if (auto s = self->push({N_STRING})) { if (auto s = self->push({N_STRING2})) {
return s; return s;
} }
break; break;
@@ -251,8 +254,11 @@ inline WeaselJsonStatus n_object2(Parser3 *self) {
self->callbacks->on_end_object(self->data); self->callbacks->on_end_object(self->data);
MUSTTAIL return Parser3::keepGoing(self); MUSTTAIL return Parser3::keepGoing(self);
case '"': case '"':
self->callbacks->on_begin_string(self->data);
++self->buf;
self->dataBegin = self->writeBuf = self->buf;
self->pop(); self->pop();
if (auto s = self->push({N_STRING, T_COLON, N_VALUE, N_OBJECT3})) { if (auto s = self->push({N_STRING2, T_COLON, N_VALUE, N_OBJECT3})) {
return s; return s;
} }
MUSTTAIL return Parser3::keepGoing(self); MUSTTAIL return Parser3::keepGoing(self);