From 3635f5cf18f073494c376fd018978b574c9ba40f Mon Sep 17 00:00:00 2001 From: Andrew Noyes Date: Thu, 22 May 2025 11:45:57 -0400 Subject: [PATCH] Skip over n_string when you know it matches --- src/parser3.h | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/parser3.h b/src/parser3.h index e08390f..6ecd808 100644 --- a/src/parser3.h +++ b/src/parser3.h @@ -174,8 +174,11 @@ inline WeaselJsonStatus n_value(Parser3 *self) { } break; case '"': + self->callbacks->on_begin_string(self->data); + ++self->buf; + self->dataBegin = self->writeBuf = self->buf; self->pop(); - if (auto s = self->push({N_STRING})) { + if (auto s = self->push({N_STRING2})) { return s; } break; @@ -251,8 +254,11 @@ inline WeaselJsonStatus n_object2(Parser3 *self) { self->callbacks->on_end_object(self->data); MUSTTAIL return Parser3::keepGoing(self); case '"': + self->callbacks->on_begin_string(self->data); + ++self->buf; + self->dataBegin = self->writeBuf = self->buf; 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; } MUSTTAIL return Parser3::keepGoing(self);