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);