mirror of
https://github.com/simdjson/simdjson
synced 2026-06-08 17:27:07 +00:00
Prefixing macros (issue 1035) (#1124)
* Renaming partially done. * More prefixing. * I thought that this was fixed. * Missed one. * Missed a few. * Missed another one. * Minor fixes.
This commit is contained in:
@@ -14,7 +14,7 @@ namespace stage1 {
|
||||
class structural_scanner {
|
||||
public:
|
||||
|
||||
really_inline structural_scanner(dom_parser_implementation &_parser, bool _partial)
|
||||
simdjson_really_inline structural_scanner(dom_parser_implementation &_parser, bool _partial)
|
||||
: buf{_parser.buf},
|
||||
next_structural_index{_parser.structural_indexes.get()},
|
||||
parser{_parser},
|
||||
@@ -22,18 +22,18 @@ really_inline structural_scanner(dom_parser_implementation &_parser, bool _parti
|
||||
partial{_partial} {
|
||||
}
|
||||
|
||||
really_inline void add_structural() {
|
||||
simdjson_really_inline void add_structural() {
|
||||
*next_structural_index = idx;
|
||||
next_structural_index++;
|
||||
}
|
||||
|
||||
really_inline bool is_continuation(uint8_t c) {
|
||||
simdjson_really_inline bool is_continuation(uint8_t c) {
|
||||
return (c & 0b11000000) == 0b10000000;
|
||||
}
|
||||
|
||||
really_inline void validate_utf8_character() {
|
||||
simdjson_really_inline void validate_utf8_character() {
|
||||
// Continuation
|
||||
if (unlikely((buf[idx] & 0b01000000) == 0)) {
|
||||
if (simdjson_unlikely((buf[idx] & 0b01000000) == 0)) {
|
||||
// extra continuation
|
||||
error = UTF8_ERROR;
|
||||
idx++;
|
||||
@@ -43,7 +43,7 @@ really_inline void validate_utf8_character() {
|
||||
// 2-byte
|
||||
if ((buf[idx] & 0b00100000) == 0) {
|
||||
// missing continuation
|
||||
if (unlikely(idx+1 > len || !is_continuation(buf[idx+1]))) {
|
||||
if (simdjson_unlikely(idx+1 > len || !is_continuation(buf[idx+1]))) {
|
||||
if (idx+1 > len && partial) { idx = len; return; }
|
||||
error = UTF8_ERROR;
|
||||
idx++;
|
||||
@@ -58,7 +58,7 @@ really_inline void validate_utf8_character() {
|
||||
// 3-byte
|
||||
if ((buf[idx] & 0b00010000) == 0) {
|
||||
// missing continuation
|
||||
if (unlikely(idx+2 > len || !is_continuation(buf[idx+1]) || !is_continuation(buf[idx+2]))) {
|
||||
if (simdjson_unlikely(idx+2 > len || !is_continuation(buf[idx+1]) || !is_continuation(buf[idx+2]))) {
|
||||
if (idx+2 > len && partial) { idx = len; return; }
|
||||
error = UTF8_ERROR;
|
||||
idx++;
|
||||
@@ -74,7 +74,7 @@ really_inline void validate_utf8_character() {
|
||||
|
||||
// 4-byte
|
||||
// missing continuation
|
||||
if (unlikely(idx+3 > len || !is_continuation(buf[idx+1]) || !is_continuation(buf[idx+2]) || !is_continuation(buf[idx+3]))) {
|
||||
if (simdjson_unlikely(idx+3 > len || !is_continuation(buf[idx+1]) || !is_continuation(buf[idx+2]) || !is_continuation(buf[idx+3]))) {
|
||||
if (idx+2 > len && partial) { idx = len; return; }
|
||||
error = UTF8_ERROR;
|
||||
idx++;
|
||||
@@ -92,12 +92,12 @@ really_inline void validate_utf8_character() {
|
||||
idx += 4;
|
||||
}
|
||||
|
||||
really_inline void validate_string() {
|
||||
simdjson_really_inline void validate_string() {
|
||||
idx++; // skip first quote
|
||||
while (idx < len && buf[idx] != '"') {
|
||||
if (buf[idx] == '\\') {
|
||||
idx += 2;
|
||||
} else if (unlikely(buf[idx] & 0b10000000)) {
|
||||
} else if (simdjson_unlikely(buf[idx] & 0b10000000)) {
|
||||
validate_utf8_character();
|
||||
} else {
|
||||
if (buf[idx] < 0x20) { error = UNESCAPED_CHARS; }
|
||||
@@ -107,7 +107,7 @@ really_inline void validate_string() {
|
||||
if (idx >= len && !partial) { error = UNCLOSED_STRING; }
|
||||
}
|
||||
|
||||
really_inline bool is_whitespace_or_operator(uint8_t c) {
|
||||
simdjson_really_inline bool is_whitespace_or_operator(uint8_t c) {
|
||||
switch (c) {
|
||||
case '{': case '}': case '[': case ']': case ',': case ':':
|
||||
case ' ': case '\r': case '\n': case '\t':
|
||||
@@ -120,7 +120,7 @@ really_inline bool is_whitespace_or_operator(uint8_t c) {
|
||||
//
|
||||
// Parse the entire input in STEP_SIZE-byte chunks.
|
||||
//
|
||||
really_inline error_code scan() {
|
||||
simdjson_really_inline error_code scan() {
|
||||
for (;idx<len;idx++) {
|
||||
switch (buf[idx]) {
|
||||
// String
|
||||
@@ -153,7 +153,7 @@ really_inline error_code scan() {
|
||||
parser.n_structural_indexes = uint32_t(next_structural_index - parser.structural_indexes.get());
|
||||
parser.next_structural_index = 0;
|
||||
|
||||
if (unlikely(parser.n_structural_indexes == 0)) {
|
||||
if (simdjson_unlikely(parser.n_structural_indexes == 0)) {
|
||||
return EMPTY;
|
||||
}
|
||||
|
||||
@@ -180,7 +180,7 @@ private:
|
||||
|
||||
} // namespace stage1
|
||||
|
||||
WARN_UNUSED error_code dom_parser_implementation::stage1(const uint8_t *_buf, size_t _len, bool partial) noexcept {
|
||||
SIMDJSON_WARN_UNUSED error_code dom_parser_implementation::stage1(const uint8_t *_buf, size_t _len, bool partial) noexcept {
|
||||
this->buf = _buf;
|
||||
this->len = _len;
|
||||
stage1::structural_scanner scanner(*this, partial);
|
||||
@@ -222,7 +222,7 @@ static uint8_t jump_table[256 * 3] = {
|
||||
0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1,
|
||||
};
|
||||
|
||||
WARN_UNUSED error_code implementation::minify(const uint8_t *buf, size_t len, uint8_t *dst, size_t &dst_len) const noexcept {
|
||||
SIMDJSON_WARN_UNUSED error_code implementation::minify(const uint8_t *buf, size_t len, uint8_t *dst, size_t &dst_len) const noexcept {
|
||||
size_t i = 0, pos = 0;
|
||||
uint8_t quote = 0;
|
||||
uint8_t nonescape = 1;
|
||||
@@ -244,7 +244,7 @@ WARN_UNUSED error_code implementation::minify(const uint8_t *buf, size_t len, ui
|
||||
}
|
||||
|
||||
// credit: based on code from Google Fuchsia (Apache Licensed)
|
||||
WARN_UNUSED bool implementation::validate_utf8(const char *buf, size_t len) const noexcept {
|
||||
SIMDJSON_WARN_UNUSED bool implementation::validate_utf8(const char *buf, size_t len) const noexcept {
|
||||
const uint8_t *data = (const uint8_t *)buf;
|
||||
uint64_t pos = 0;
|
||||
uint64_t next_pos = 0;
|
||||
@@ -321,19 +321,19 @@ WARN_UNUSED bool implementation::validate_utf8(const char *buf, size_t len) cons
|
||||
namespace {
|
||||
namespace SIMDJSON_IMPLEMENTATION {
|
||||
|
||||
WARN_UNUSED error_code dom_parser_implementation::stage2(dom::document &_doc) noexcept {
|
||||
SIMDJSON_WARN_UNUSED error_code dom_parser_implementation::stage2(dom::document &_doc) noexcept {
|
||||
doc = &_doc;
|
||||
stage2::tape_builder builder(*doc);
|
||||
return stage2::structural_parser::parse<false>(*this, builder);
|
||||
}
|
||||
|
||||
WARN_UNUSED error_code dom_parser_implementation::stage2_next(dom::document &_doc) noexcept {
|
||||
SIMDJSON_WARN_UNUSED error_code dom_parser_implementation::stage2_next(dom::document &_doc) noexcept {
|
||||
doc = &_doc;
|
||||
stage2::tape_builder builder(_doc);
|
||||
return stage2::structural_parser::parse<true>(*this, builder);
|
||||
}
|
||||
|
||||
WARN_UNUSED error_code dom_parser_implementation::parse(const uint8_t *_buf, size_t _len, dom::document &_doc) noexcept {
|
||||
SIMDJSON_WARN_UNUSED error_code dom_parser_implementation::parse(const uint8_t *_buf, size_t _len, dom::document &_doc) noexcept {
|
||||
auto error = stage1(_buf, _len, false);
|
||||
if (error) { return error; }
|
||||
return stage2(_doc);
|
||||
|
||||
Reference in New Issue
Block a user