data -> userdata

This commit is contained in:
2025-05-27 10:33:46 -04:00
parent f6cd807da3
commit 0027c9ff79
2 changed files with 23 additions and 23 deletions

View File

@@ -7,12 +7,12 @@ extern "C" {
__attribute__((visibility("default"))) WeaselJsonParser *
WeaselJsonParser_create(int stackSize, const WeaselJsonCallbacks *callbacks,
void *data) {
void *userdata) {
auto *buf = malloc(sizeof(Parser3) + stackSize);
if (buf == nullptr) {
return nullptr;
}
return (WeaselJsonParser *)new (buf) Parser3{callbacks, data, stackSize};
return (WeaselJsonParser *)new (buf) Parser3{callbacks, userdata, stackSize};
}
__attribute__((visibility("default"))) void

View File

@@ -68,8 +68,8 @@ enum Symbol : uint8_t {
N_SYMBOL_COUNT, // Must be last
};
struct Parser3 {
Parser3(const WeaselJsonCallbacks *callbacks, void *data, int stackSize)
: callbacks(callbacks), data(data), stackSize(stackSize) {
Parser3(const WeaselJsonCallbacks *callbacks, void *userdata, int stackSize)
: callbacks(callbacks), userdata(userdata), stackSize(stackSize) {
reset();
}
@@ -84,7 +84,7 @@ struct Parser3 {
int len = buf - dataBegin;
assert(len >= 0);
if (done || len > 0) {
callbacks->on_number_data(data, dataBegin, len, done);
callbacks->on_number_data(userdata, dataBegin, len, done);
}
}
@@ -92,7 +92,7 @@ struct Parser3 {
int len = writeBuf - dataBegin;
assert(len >= 0);
if (done || len > 0) {
callbacks->on_string_data(data, dataBegin, len, done);
callbacks->on_string_data(userdata, dataBegin, len, done);
}
dataBegin = writeBuf;
}
@@ -116,7 +116,7 @@ struct Parser3 {
assert(result >= 0);
return result;
}
Symbol top() const {
[[nodiscard]] Symbol top() const {
assert(!empty());
return *(stackPtr - 1);
}
@@ -144,7 +144,7 @@ struct Parser3 {
// Used for unescaping string data in place
char *writeBuf;
const WeaselJsonCallbacks *const callbacks;
void *const data;
void *const userdata;
Symbol *stackPtr;
bool complete;
uint32_t utf8Codepoint;
@@ -178,7 +178,7 @@ inline PRESERVE_NONE WeaselJsonStatus n_value(Parser3 *self) {
}
switch (*self->buf) {
case '{':
self->callbacks->on_begin_object(self->data);
self->callbacks->on_begin_object(self->userdata);
++self->buf;
self->pop();
if (auto s = self->push({N_OBJECT2})) {
@@ -186,7 +186,7 @@ inline PRESERVE_NONE WeaselJsonStatus n_value(Parser3 *self) {
}
break;
case '[':
self->callbacks->on_begin_array(self->data);
self->callbacks->on_begin_array(self->userdata);
++self->buf;
self->pop();
if (auto s = self->push({N_ARRAY2})) {
@@ -238,7 +238,7 @@ inline PRESERVE_NONE WeaselJsonStatus n_value(Parser3 *self) {
self->pop();
if (self->len() >= 3) {
if (memcmp(self->buf, "rue", 3) == 0) {
self->callbacks->on_true_literal(self->data);
self->callbacks->on_true_literal(self->userdata);
self->buf += 3;
} else [[unlikely]] {
return WeaselJson_REJECT;
@@ -254,7 +254,7 @@ inline PRESERVE_NONE WeaselJsonStatus n_value(Parser3 *self) {
self->pop();
if (self->len() >= 4) {
if (memcmp(self->buf, "alse", 4) == 0) {
self->callbacks->on_false_literal(self->data);
self->callbacks->on_false_literal(self->userdata);
self->buf += 4;
} else [[unlikely]] {
return WeaselJson_REJECT;
@@ -270,7 +270,7 @@ inline PRESERVE_NONE WeaselJsonStatus n_value(Parser3 *self) {
self->pop();
if (self->len() >= 3) {
if (memcmp(self->buf, "ull", 3) == 0) {
self->callbacks->on_null_literal(self->data);
self->callbacks->on_null_literal(self->userdata);
self->buf += 3;
} else [[unlikely]] {
return WeaselJson_REJECT;
@@ -299,7 +299,7 @@ inline PRESERVE_NONE WeaselJsonStatus n_object2(Parser3 *self) {
case '}':
++self->buf;
self->pop();
self->callbacks->on_end_object(self->data);
self->callbacks->on_end_object(self->userdata);
MUSTTAIL return Parser3::keepGoing(self);
case '"':
++self->buf;
@@ -326,7 +326,7 @@ inline PRESERVE_NONE WeaselJsonStatus n_object3(Parser3 *self) {
case '}':
++self->buf;
self->pop();
self->callbacks->on_end_object(self->data);
self->callbacks->on_end_object(self->userdata);
MUSTTAIL return Parser3::keepGoing(self);
case ',':
++self->buf;
@@ -352,7 +352,7 @@ inline PRESERVE_NONE WeaselJsonStatus n_array2(Parser3 *self) {
case ']':
++self->buf;
self->pop();
self->callbacks->on_end_array(self->data);
self->callbacks->on_end_array(self->userdata);
MUSTTAIL return Parser3::keepGoing(self);
default:
self->pop();
@@ -375,7 +375,7 @@ inline PRESERVE_NONE WeaselJsonStatus n_array3(Parser3 *self) {
case ']':
++self->buf;
self->pop();
self->callbacks->on_end_array(self->data);
self->callbacks->on_end_array(self->userdata);
MUSTTAIL return Parser3::keepGoing(self);
case ',':
++self->buf;
@@ -663,7 +663,7 @@ inline PRESERVE_NONE WeaselJsonStatus t_hex2(Parser3 *self) {
w[0] = (0b00011111 & self->utf8Codepoint) | 0b11000000;
w += 2;
if (useTmp) {
self->callbacks->on_string_data(self->data, tmp, 2, false);
self->callbacks->on_string_data(self->userdata, tmp, 2, false);
}
} else {
assert(self->utf8Codepoint < 0x10000);
@@ -691,7 +691,7 @@ inline PRESERVE_NONE WeaselJsonStatus t_hex2(Parser3 *self) {
w[0] = (0b00001111 & self->utf8Codepoint) | 0b11100000;
w += 3;
if (useTmp) {
self->callbacks->on_string_data(self->data, tmp, 3, false);
self->callbacks->on_string_data(self->userdata, tmp, 3, false);
}
}
@@ -743,7 +743,7 @@ inline PRESERVE_NONE WeaselJsonStatus t_hex3(Parser3 *self) {
w[0] = (0b00000111 & self->utf8Codepoint) | 0b11110000;
w += 4;
if (useTmp) {
self->callbacks->on_string_data(self->data, tmp, 4, false);
self->callbacks->on_string_data(self->userdata, tmp, 4, false);
}
self->pop();
@@ -918,7 +918,7 @@ inline PRESERVE_NONE WeaselJsonStatus n_true(Parser3 *self) {
if (*self->buf == 'e') {
++self->buf;
self->pop();
self->callbacks->on_true_literal(self->data);
self->callbacks->on_true_literal(self->userdata);
MUSTTAIL return Parser3::keepGoing(self);
} else [[unlikely]] {
return WeaselJson_REJECT;
@@ -929,7 +929,7 @@ inline PRESERVE_NONE WeaselJsonStatus n_false(Parser3 *self) {
if (*self->buf == 'e') {
++self->buf;
self->pop();
self->callbacks->on_false_literal(self->data);
self->callbacks->on_false_literal(self->userdata);
MUSTTAIL return Parser3::keepGoing(self);
} else [[unlikely]] {
return WeaselJson_REJECT;
@@ -940,7 +940,7 @@ inline PRESERVE_NONE WeaselJsonStatus n_null(Parser3 *self) {
if (*self->buf == 'l') {
++self->buf;
self->pop();
self->callbacks->on_null_literal(self->data);
self->callbacks->on_null_literal(self->userdata);
MUSTTAIL return Parser3::keepGoing(self);
} else [[unlikely]] {
return WeaselJson_REJECT;