wuffs gen -version=0.3.0-alpha.12
diff --git a/release/c/wuffs-v0.3.c b/release/c/wuffs-v0.3.c
index 07c5e1a..d103bae 100644
--- a/release/c/wuffs-v0.3.c
+++ b/release/c/wuffs-v0.3.c
@@ -65,15 +65,15 @@
// each major.minor branch, the commit count should increase monotonically.
//
// WUFFS_VERSION was overridden by "wuffs gen -version" based on revision
-// ca1113620b228a7bc7ca86364d5fdfc848361e95 committed on 2020-08-17.
+// a06a89c080e46db183fb65268e5cbef247c2b85a committed on 2020-08-30.
#define WUFFS_VERSION 0x000030000
#define WUFFS_VERSION_MAJOR 0
#define WUFFS_VERSION_MINOR 3
#define WUFFS_VERSION_PATCH 0
-#define WUFFS_VERSION_PRE_RELEASE_LABEL "alpha.11"
-#define WUFFS_VERSION_BUILD_METADATA_COMMIT_COUNT 2663
-#define WUFFS_VERSION_BUILD_METADATA_COMMIT_DATE 20200817
-#define WUFFS_VERSION_STRING "0.3.0-alpha.11+2663.20200817"
+#define WUFFS_VERSION_PRE_RELEASE_LABEL "alpha.12"
+#define WUFFS_VERSION_BUILD_METADATA_COMMIT_COUNT 2695
+#define WUFFS_VERSION_BUILD_METADATA_COMMIT_DATE 20200830
+#define WUFFS_VERSION_STRING "0.3.0-alpha.12+2695.20200830"
// Define WUFFS_CONFIG__STATIC_FUNCTIONS to make all of Wuffs' functions have
// static storage. The motivation is discussed in the "ALLOW STATIC
@@ -1942,7 +1942,7 @@
typedef struct {
size_t wi; // Write index. Invariant: wi <= len.
size_t ri; // Read index. Invariant: ri <= wi.
- uint64_t pos; // Position of the buffer start relative to the stream start.
+ uint64_t pos; // Buffer position (relative to the start of stream).
bool closed; // No further writes are expected.
} wuffs_base__io_buffer_meta;
@@ -1957,14 +1957,19 @@
#ifdef __cplusplus
inline bool is_valid() const;
inline void compact();
- inline uint64_t reader_io_position() const;
inline size_t reader_length() const;
inline uint8_t* reader_pointer() const;
+ inline uint64_t reader_position() const;
inline wuffs_base__slice_u8 reader_slice() const;
- inline uint64_t writer_io_position() const;
inline size_t writer_length() const;
inline uint8_t* writer_pointer() const;
+ inline uint64_t writer_position() const;
inline wuffs_base__slice_u8 writer_slice() const;
+
+ // Deprecated: use reader_position.
+ inline uint64_t reader_io_position() const;
+ // Deprecated: use writer_position.
+ inline uint64_t writer_io_position() const;
#endif // __cplusplus
} wuffs_base__io_buffer;
@@ -2089,6 +2094,7 @@
buf->meta.ri = 0;
}
+// Deprecated. Use wuffs_base__io_buffer__reader_position.
static inline uint64_t //
wuffs_base__io_buffer__reader_io_position(const wuffs_base__io_buffer* buf) {
return buf ? wuffs_base__u64__sat_add(buf->meta.pos, buf->meta.ri) : 0;
@@ -2104,6 +2110,11 @@
return buf ? (buf->data.ptr + buf->meta.ri) : NULL;
}
+static inline uint64_t //
+wuffs_base__io_buffer__reader_position(const wuffs_base__io_buffer* buf) {
+ return buf ? wuffs_base__u64__sat_add(buf->meta.pos, buf->meta.ri) : 0;
+}
+
static inline wuffs_base__slice_u8 //
wuffs_base__io_buffer__reader_slice(const wuffs_base__io_buffer* buf) {
return buf ? wuffs_base__make_slice_u8(buf->data.ptr + buf->meta.ri,
@@ -2111,6 +2122,7 @@
: wuffs_base__empty_slice_u8();
}
+// Deprecated. Use wuffs_base__io_buffer__writer_position.
static inline uint64_t //
wuffs_base__io_buffer__writer_io_position(const wuffs_base__io_buffer* buf) {
return buf ? wuffs_base__u64__sat_add(buf->meta.pos, buf->meta.wi) : 0;
@@ -2126,6 +2138,11 @@
return buf ? (buf->data.ptr + buf->meta.wi) : NULL;
}
+static inline uint64_t //
+wuffs_base__io_buffer__writer_position(const wuffs_base__io_buffer* buf) {
+ return buf ? wuffs_base__u64__sat_add(buf->meta.pos, buf->meta.wi) : 0;
+}
+
static inline wuffs_base__slice_u8 //
wuffs_base__io_buffer__writer_slice(const wuffs_base__io_buffer* buf) {
return buf ? wuffs_base__make_slice_u8(buf->data.ptr + buf->meta.wi,
@@ -2160,6 +2177,11 @@
return wuffs_base__io_buffer__reader_pointer(this);
}
+inline uint64_t //
+wuffs_base__io_buffer::reader_position() const {
+ return wuffs_base__io_buffer__reader_position(this);
+}
+
inline wuffs_base__slice_u8 //
wuffs_base__io_buffer::reader_slice() const {
return wuffs_base__io_buffer__reader_slice(this);
@@ -2180,6 +2202,11 @@
return wuffs_base__io_buffer__writer_pointer(this);
}
+inline uint64_t //
+wuffs_base__io_buffer::writer_position() const {
+ return wuffs_base__io_buffer__writer_position(this);
+}
+
inline wuffs_base__slice_u8 //
wuffs_base__io_buffer::writer_slice() const {
return wuffs_base__io_buffer__writer_slice(this);
@@ -2244,8 +2271,12 @@
// --------
-#define WUFFS_BASE__TOKEN__VBD__FILLER__COMMENT_LINE 0x00001
+#define WUFFS_BASE__TOKEN__VBD__FILLER__PUNCTUATION 0x00001
#define WUFFS_BASE__TOKEN__VBD__FILLER__COMMENT_BLOCK 0x00002
+#define WUFFS_BASE__TOKEN__VBD__FILLER__COMMENT_LINE 0x00004
+
+// COMMENT_ANY is a bit-wise or of COMMENT_BLOCK AND COMMENT_LINE.
+#define WUFFS_BASE__TOKEN__VBD__FILLER__COMMENT_ANY 0x00006
// --------
@@ -7576,6 +7607,7 @@
extern const char wuffs_json__error__bad_utf_8[];
extern const char wuffs_json__error__bad_backslash_escape[];
extern const char wuffs_json__error__bad_input[];
+extern const char wuffs_json__error__bad_new_line_in_a_string[];
extern const char wuffs_json__error__bad_quirk_combination[];
extern const char wuffs_json__error__unsupported_number_length[];
extern const char wuffs_json__error__unsupported_recursion_depth[];
@@ -7606,8 +7638,6 @@
#define WUFFS_JSON__QUIRK_ALLOW_BACKSLASH_V 1225364487
-#define WUFFS_JSON__QUIRK_ALLOW_BACKSLASH_X_AS_BYTES 1225364488
-
#define WUFFS_JSON__QUIRK_ALLOW_BACKSLASH_X_AS_CODE_POINTS 1225364489
#define WUFFS_JSON__QUIRK_ALLOW_BACKSLASH_ZERO 1225364490
@@ -7722,7 +7752,6 @@
bool f_allow_leading_ars;
bool f_allow_leading_ubom;
bool f_end_of_data;
- uint32_t f_string_value_minor;
uint32_t p_decode_tokens[1];
uint32_t p_decode_leading[1];
@@ -8561,21 +8590,10 @@
// strings, the Callbacks implementation is responsible for tracking map keys
// versus other values.
- // The JSON file format as specified deals only with (UTF-8) text strings,
- // but an unofficial extension allows "ijk\x89m" escapes within those
- // strings. DecodeJsonCallbacks' AppendByteString will not be called unless
- // WUFFS_JSON__QUIRK_ALLOW_BACKSLASH_X_AS_BYTES is passed to DecodeJson. If
- // it is passed, AppendTextString will not be called and all byte strings are
- // potentially invalid UTF-8. It is up to the AppendByteString implementation
- // whether to test the std::string for UTF-8 validity.
- //
- // The default AppendByteString implementation returns an error message.
-
virtual std::string AppendNull() = 0;
virtual std::string AppendBool(bool val) = 0;
virtual std::string AppendF64(double val) = 0;
virtual std::string AppendI64(int64_t val) = 0;
- virtual std::string AppendByteString(std::string&& val);
virtual std::string AppendTextString(std::string&& val) = 0;
// Push and Pop are called for container nodes: JSON arrays (lists) and JSON
@@ -17007,12 +17025,13 @@
goto label__goto_parsed_a_leaf_value__break;
}
} else if (v_c_major == 2) {
- if (v_c_minor == 0) {
- *iop_a_dst++ = wuffs_base__make_token(
- (((uint64_t)(4194560)) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
- (((uint64_t)(1)) << WUFFS_BASE__TOKEN__LENGTH__SHIFT));
- goto label__goto_parsed_a_leaf_value__break;
- } else if (v_c_minor < 28) {
+ if (v_c_minor < 28) {
+ if (v_string_length == 0) {
+ *iop_a_dst++ = wuffs_base__make_token(
+ (((uint64_t)(4194560)) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
+ (((uint64_t)(((uint32_t)(WUFFS_CBOR__TOKEN_LENGTHS[v_c_minor])))) << WUFFS_BASE__TOKEN__LENGTH__SHIFT));
+ goto label__goto_parsed_a_leaf_value__break;
+ }
*iop_a_dst++ = wuffs_base__make_token(
(((uint64_t)(4194560)) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
(((uint64_t)(1)) << WUFFS_BASE__TOKEN__CONTINUED__SHIFT) |
@@ -17072,12 +17091,13 @@
goto label__goto_parsed_a_leaf_value__break;
}
} else if (v_c_major == 3) {
- if (v_c_minor == 0) {
- *iop_a_dst++ = wuffs_base__make_token(
- (((uint64_t)(4194579)) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
- (((uint64_t)(1)) << WUFFS_BASE__TOKEN__LENGTH__SHIFT));
- goto label__goto_parsed_a_leaf_value__break;
- } else if (v_c_minor < 28) {
+ if (v_c_minor < 28) {
+ if (v_string_length == 0) {
+ *iop_a_dst++ = wuffs_base__make_token(
+ (((uint64_t)(4194579)) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
+ (((uint64_t)(((uint32_t)(WUFFS_CBOR__TOKEN_LENGTHS[v_c_minor])))) << WUFFS_BASE__TOKEN__LENGTH__SHIFT));
+ goto label__goto_parsed_a_leaf_value__break;
+ }
*iop_a_dst++ = wuffs_base__make_token(
(((uint64_t)(4194579)) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
(((uint64_t)(1)) << WUFFS_BASE__TOKEN__CONTINUED__SHIFT) |
@@ -17140,6 +17160,11 @@
if (WUFFS_CBOR__TOKEN_LENGTHS[v_c_minor] == 0) {
goto label__goto_fail__break;
} else if (v_depth >= 1024) {
+ v_token_length = ((uint32_t)(WUFFS_CBOR__TOKEN_LENGTHS[v_c_minor]));
+ while ((v_token_length > 0) && (iop_a_src > io1_a_src)) {
+ (iop_a_src--, wuffs_base__make_empty_struct());
+ v_token_length -= 1;
+ }
status = wuffs_base__make_status(wuffs_cbor__error__unsupported_recursion_depth);
goto exit;
}
@@ -17176,6 +17201,11 @@
if (WUFFS_CBOR__TOKEN_LENGTHS[v_c_minor] == 0) {
goto label__goto_fail__break;
} else if (v_depth >= 1024) {
+ v_token_length = ((uint32_t)(WUFFS_CBOR__TOKEN_LENGTHS[v_c_minor]));
+ while ((v_token_length > 0) && (iop_a_src > io1_a_src)) {
+ (iop_a_src--, wuffs_base__make_empty_struct());
+ v_token_length -= 1;
+ }
status = wuffs_base__make_status(wuffs_cbor__error__unsupported_recursion_depth);
goto exit;
}
@@ -25471,6 +25501,7 @@
const char wuffs_json__error__bad_utf_8[] = "#json: bad UTF-8";
const char wuffs_json__error__bad_backslash_escape[] = "#json: bad backslash-escape";
const char wuffs_json__error__bad_input[] = "#json: bad input";
+const char wuffs_json__error__bad_new_line_in_a_string[] = "#json: bad new-line in a string";
const char wuffs_json__error__bad_quirk_combination[] = "#json: bad quirk combination";
const char wuffs_json__error__unsupported_number_length[] = "#json: unsupported number length";
const char wuffs_json__error__unsupported_recursion_depth[] = "#json: unsupported recursion depth";
@@ -25923,7 +25954,6 @@
uint8_t v_char = 0;
uint8_t v_class = 0;
uint32_t v_multi_byte_utf8 = 0;
- uint32_t v_backslash_x_length = 0;
uint8_t v_backslash_x_ok = 0;
uint8_t v_backslash_x_value = 0;
uint32_t v_backslash_x_string = 0;
@@ -25993,15 +26023,6 @@
goto suspend;
}
}
- if (self->private_impl.f_quirks[8]) {
- if (self->private_impl.f_quirks[9]) {
- status = wuffs_base__make_status(wuffs_json__error__bad_quirk_combination);
- goto exit;
- }
- self->private_impl.f_string_value_minor = 4194304;
- } else {
- self->private_impl.f_string_value_minor = 4194306;
- }
v_expect = 7858;
label__outer__continue:;
while (true) {
@@ -26062,10 +26083,7 @@
}
if (v_class == 1) {
*iop_a_dst++ = wuffs_base__make_token(
- (((uint64_t)((self->private_impl.f_string_value_minor |
- 1 |
- 16 |
- 256))) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
+ (((uint64_t)(4194579)) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
(((uint64_t)(1)) << WUFFS_BASE__TOKEN__CONTINUED__SHIFT) |
(((uint64_t)(1)) << WUFFS_BASE__TOKEN__LENGTH__SHIFT));
(iop_a_src += 1, wuffs_base__make_empty_struct());
@@ -26082,7 +26100,7 @@
if (((uint64_t)(io2_a_src - iop_a_src)) <= 0) {
if (v_string_length > 0) {
*iop_a_dst++ = wuffs_base__make_token(
- (((uint64_t)((self->private_impl.f_string_value_minor | 1 | 512))) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
+ (((uint64_t)(4194819)) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
(((uint64_t)(1)) << WUFFS_BASE__TOKEN__CONTINUED__SHIFT) |
(((uint64_t)(v_string_length)) << WUFFS_BASE__TOKEN__LENGTH__SHIFT));
v_string_length = 0;
@@ -26107,7 +26125,7 @@
(iop_a_src += 4, wuffs_base__make_empty_struct());
if (v_string_length > 65527) {
*iop_a_dst++ = wuffs_base__make_token(
- (((uint64_t)((self->private_impl.f_string_value_minor | 1 | 512))) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
+ (((uint64_t)(4194819)) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
(((uint64_t)(1)) << WUFFS_BASE__TOKEN__CONTINUED__SHIFT) |
(((uint64_t)((v_string_length + 4))) << WUFFS_BASE__TOKEN__LENGTH__SHIFT));
v_string_length = 0;
@@ -26122,7 +26140,7 @@
(iop_a_src += 1, wuffs_base__make_empty_struct());
if (v_string_length >= 65531) {
*iop_a_dst++ = wuffs_base__make_token(
- (((uint64_t)((self->private_impl.f_string_value_minor | 1 | 512))) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
+ (((uint64_t)(4194819)) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
(((uint64_t)(1)) << WUFFS_BASE__TOKEN__CONTINUED__SHIFT) |
(((uint64_t)(65532)) << WUFFS_BASE__TOKEN__LENGTH__SHIFT));
v_string_length = 0;
@@ -26133,7 +26151,7 @@
} else if (v_char == 1) {
if (v_string_length != 0) {
*iop_a_dst++ = wuffs_base__make_token(
- (((uint64_t)((self->private_impl.f_string_value_minor | 1 | 512))) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
+ (((uint64_t)(4194819)) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
(((uint64_t)(1)) << WUFFS_BASE__TOKEN__CONTINUED__SHIFT) |
(((uint64_t)(v_string_length)) << WUFFS_BASE__TOKEN__LENGTH__SHIFT));
v_string_length = 0;
@@ -26142,7 +26160,7 @@
} else if (v_char == 2) {
if (v_string_length > 0) {
*iop_a_dst++ = wuffs_base__make_token(
- (((uint64_t)((self->private_impl.f_string_value_minor | 1 | 512))) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
+ (((uint64_t)(4194819)) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
(((uint64_t)(1)) << WUFFS_BASE__TOKEN__CONTINUED__SHIFT) |
(((uint64_t)(v_string_length)) << WUFFS_BASE__TOKEN__LENGTH__SHIFT));
v_string_length = 0;
@@ -26336,74 +26354,36 @@
(((uint64_t)(10)) << WUFFS_BASE__TOKEN__LENGTH__SHIFT));
goto label__string_loop_outer__continue;
}
- } else if (v_c == 120) {
- if (self->private_impl.f_quirks[9]) {
- if (((uint64_t)(io2_a_src - iop_a_src)) < 4) {
- if (a_src && a_src->meta.closed) {
- status = wuffs_base__make_status(wuffs_json__error__bad_backslash_escape);
- goto exit;
- }
- status = wuffs_base__make_status(wuffs_base__suspension__short_read);
- WUFFS_BASE__COROUTINE_SUSPENSION_POINT_MAYBE_SUSPEND(10);
- v_string_length = 0;
- v_char = 0;
- goto label__string_loop_outer__continue;
- }
- v_backslash_x_string = wuffs_base__load_u32le__no_bounds_check(iop_a_src);
- v_backslash_x_ok = 128;
- v_c = WUFFS_JSON__LUT_HEXADECIMAL_DIGITS[(255 & (v_backslash_x_string >> 16))];
- v_backslash_x_ok &= v_c;
- v_backslash_x_value = ((uint8_t)(((v_c & 15) << 4)));
- v_c = WUFFS_JSON__LUT_HEXADECIMAL_DIGITS[(255 & (v_backslash_x_string >> 24))];
- v_backslash_x_ok &= v_c;
- v_backslash_x_value = ((uint8_t)((v_backslash_x_value | (v_c & 15))));
- if ((v_backslash_x_ok == 0) || ((v_backslash_x_string & 65535) != 30812)) {
+ } else if ((v_c == 120) && self->private_impl.f_quirks[9]) {
+ if (((uint64_t)(io2_a_src - iop_a_src)) < 4) {
+ if (a_src && a_src->meta.closed) {
status = wuffs_base__make_status(wuffs_json__error__bad_backslash_escape);
goto exit;
}
- (iop_a_src += 4, wuffs_base__make_empty_struct());
- *iop_a_dst++ = wuffs_base__make_token(
- (((uint64_t)((6291456 | ((uint32_t)(v_backslash_x_value))))) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
- (((uint64_t)(1)) << WUFFS_BASE__TOKEN__CONTINUED__SHIFT) |
- (((uint64_t)(4)) << WUFFS_BASE__TOKEN__LENGTH__SHIFT));
- goto label__string_loop_outer__continue;
- } else if (self->private_impl.f_quirks[8]) {
- if (((uint64_t)(io2_a_src - iop_a_src)) < 4) {
- if (a_src && a_src->meta.closed) {
- status = wuffs_base__make_status(wuffs_json__error__bad_backslash_escape);
- goto exit;
- }
- status = wuffs_base__make_status(wuffs_base__suspension__short_read);
- WUFFS_BASE__COROUTINE_SUSPENSION_POINT_MAYBE_SUSPEND(11);
- v_string_length = 0;
- v_char = 0;
- goto label__string_loop_outer__continue;
- }
- v_backslash_x_length = 0;
- while ((v_backslash_x_length <= 65531) && (((uint64_t)(io2_a_src - iop_a_src)) >= 4)) {
- v_backslash_x_string = wuffs_base__load_u32le__no_bounds_check(iop_a_src);
- v_backslash_x_ok = 128;
- v_c = WUFFS_JSON__LUT_HEXADECIMAL_DIGITS[(255 & (v_backslash_x_string >> 16))];
- v_backslash_x_ok &= v_c;
- v_c = WUFFS_JSON__LUT_HEXADECIMAL_DIGITS[(255 & (v_backslash_x_string >> 24))];
- v_backslash_x_ok &= v_c;
- if ((v_backslash_x_ok == 0) || ((v_backslash_x_string & 65535) != 30812)) {
- goto label__1__break;
- }
- (iop_a_src += 4, wuffs_base__make_empty_struct());
- v_backslash_x_length += 4;
- }
- label__1__break:;
- if (v_backslash_x_length == 0) {
- status = wuffs_base__make_status(wuffs_json__error__bad_backslash_escape);
- goto exit;
- }
- *iop_a_dst++ = wuffs_base__make_token(
- (((uint64_t)((self->private_impl.f_string_value_minor | 1 | 2048))) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
- (((uint64_t)(1)) << WUFFS_BASE__TOKEN__CONTINUED__SHIFT) |
- (((uint64_t)(v_backslash_x_length)) << WUFFS_BASE__TOKEN__LENGTH__SHIFT));
+ status = wuffs_base__make_status(wuffs_base__suspension__short_read);
+ WUFFS_BASE__COROUTINE_SUSPENSION_POINT_MAYBE_SUSPEND(10);
+ v_string_length = 0;
+ v_char = 0;
goto label__string_loop_outer__continue;
}
+ v_backslash_x_string = wuffs_base__load_u32le__no_bounds_check(iop_a_src);
+ v_backslash_x_ok = 128;
+ v_c = WUFFS_JSON__LUT_HEXADECIMAL_DIGITS[(255 & (v_backslash_x_string >> 16))];
+ v_backslash_x_ok &= v_c;
+ v_backslash_x_value = ((uint8_t)(((v_c & 15) << 4)));
+ v_c = WUFFS_JSON__LUT_HEXADECIMAL_DIGITS[(255 & (v_backslash_x_string >> 24))];
+ v_backslash_x_ok &= v_c;
+ v_backslash_x_value = ((uint8_t)((v_backslash_x_value | (v_c & 15))));
+ if ((v_backslash_x_ok == 0) || ((v_backslash_x_string & 65535) != 30812)) {
+ status = wuffs_base__make_status(wuffs_json__error__bad_backslash_escape);
+ goto exit;
+ }
+ (iop_a_src += 4, wuffs_base__make_empty_struct());
+ *iop_a_dst++ = wuffs_base__make_token(
+ (((uint64_t)((6291456 | ((uint32_t)(v_backslash_x_value))))) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
+ (((uint64_t)(1)) << WUFFS_BASE__TOKEN__CONTINUED__SHIFT) |
+ (((uint64_t)(4)) << WUFFS_BASE__TOKEN__LENGTH__SHIFT));
+ goto label__string_loop_outer__continue;
}
status = wuffs_base__make_status(wuffs_json__error__bad_backslash_escape);
goto exit;
@@ -26411,7 +26391,52 @@
if (((uint64_t)(io2_a_src - iop_a_src)) < 2) {
if (v_string_length > 0) {
*iop_a_dst++ = wuffs_base__make_token(
- (((uint64_t)((self->private_impl.f_string_value_minor | 1 | 512))) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
+ (((uint64_t)(4194819)) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
+ (((uint64_t)(1)) << WUFFS_BASE__TOKEN__CONTINUED__SHIFT) |
+ (((uint64_t)(v_string_length)) << WUFFS_BASE__TOKEN__LENGTH__SHIFT));
+ v_string_length = 0;
+ if (((uint64_t)(io2_a_dst - iop_a_dst)) <= 0) {
+ goto label__string_loop_outer__continue;
+ }
+ }
+ if (a_src && a_src->meta.closed) {
+ if (self->private_impl.f_quirks[19]) {
+ *iop_a_dst++ = wuffs_base__make_token(
+ (((uint64_t)(6356989)) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
+ (((uint64_t)(1)) << WUFFS_BASE__TOKEN__CONTINUED__SHIFT) |
+ (((uint64_t)(1)) << WUFFS_BASE__TOKEN__LENGTH__SHIFT));
+ (iop_a_src += 1, wuffs_base__make_empty_struct());
+ goto label__string_loop_outer__continue;
+ }
+ status = wuffs_base__make_status(wuffs_json__error__bad_utf_8);
+ goto exit;
+ }
+ status = wuffs_base__make_status(wuffs_base__suspension__short_read);
+ WUFFS_BASE__COROUTINE_SUSPENSION_POINT_MAYBE_SUSPEND(11);
+ v_string_length = 0;
+ v_char = 0;
+ goto label__string_loop_outer__continue;
+ }
+ v_multi_byte_utf8 = ((uint32_t)(wuffs_base__load_u16le__no_bounds_check(iop_a_src)));
+ if ((v_multi_byte_utf8 & 49152) == 32768) {
+ v_multi_byte_utf8 = ((1984 & (v_multi_byte_utf8 << 6)) | (63 & (v_multi_byte_utf8 >> 8)));
+ (iop_a_src += 2, wuffs_base__make_empty_struct());
+ if (v_string_length >= 65528) {
+ *iop_a_dst++ = wuffs_base__make_token(
+ (((uint64_t)(4194819)) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
+ (((uint64_t)(1)) << WUFFS_BASE__TOKEN__CONTINUED__SHIFT) |
+ (((uint64_t)((v_string_length + 2))) << WUFFS_BASE__TOKEN__LENGTH__SHIFT));
+ v_string_length = 0;
+ goto label__string_loop_outer__continue;
+ }
+ v_string_length += 2;
+ goto label__string_loop_inner__continue;
+ }
+ } else if (v_char == 4) {
+ if (((uint64_t)(io2_a_src - iop_a_src)) < 3) {
+ if (v_string_length > 0) {
+ *iop_a_dst++ = wuffs_base__make_token(
+ (((uint64_t)(4194819)) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
(((uint64_t)(1)) << WUFFS_BASE__TOKEN__CONTINUED__SHIFT) |
(((uint64_t)(v_string_length)) << WUFFS_BASE__TOKEN__LENGTH__SHIFT));
v_string_length = 0;
@@ -26437,26 +26462,28 @@
v_char = 0;
goto label__string_loop_outer__continue;
}
- v_multi_byte_utf8 = ((uint32_t)(wuffs_base__load_u16le__no_bounds_check(iop_a_src)));
- if ((v_multi_byte_utf8 & 49152) == 32768) {
- v_multi_byte_utf8 = ((1984 & (v_multi_byte_utf8 << 6)) | (63 & (v_multi_byte_utf8 >> 8)));
- (iop_a_src += 2, wuffs_base__make_empty_struct());
- if (v_string_length >= 65528) {
- *iop_a_dst++ = wuffs_base__make_token(
- (((uint64_t)((self->private_impl.f_string_value_minor | 1 | 512))) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
- (((uint64_t)(1)) << WUFFS_BASE__TOKEN__CONTINUED__SHIFT) |
- (((uint64_t)((v_string_length + 2))) << WUFFS_BASE__TOKEN__LENGTH__SHIFT));
- v_string_length = 0;
- goto label__string_loop_outer__continue;
+ v_multi_byte_utf8 = ((uint32_t)(wuffs_base__load_u24le__no_bounds_check(iop_a_src)));
+ if ((v_multi_byte_utf8 & 12632064) == 8421376) {
+ v_multi_byte_utf8 = ((61440 & (v_multi_byte_utf8 << 12)) | (4032 & (v_multi_byte_utf8 >> 2)) | (63 & (v_multi_byte_utf8 >> 16)));
+ if ((2047 < v_multi_byte_utf8) && ((v_multi_byte_utf8 < 55296) || (57343 < v_multi_byte_utf8))) {
+ (iop_a_src += 3, wuffs_base__make_empty_struct());
+ if (v_string_length >= 65528) {
+ *iop_a_dst++ = wuffs_base__make_token(
+ (((uint64_t)(4194819)) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
+ (((uint64_t)(1)) << WUFFS_BASE__TOKEN__CONTINUED__SHIFT) |
+ (((uint64_t)((v_string_length + 3))) << WUFFS_BASE__TOKEN__LENGTH__SHIFT));
+ v_string_length = 0;
+ goto label__string_loop_outer__continue;
+ }
+ v_string_length += 3;
+ goto label__string_loop_inner__continue;
}
- v_string_length += 2;
- goto label__string_loop_inner__continue;
}
- } else if (v_char == 4) {
- if (((uint64_t)(io2_a_src - iop_a_src)) < 3) {
+ } else if (v_char == 5) {
+ if (((uint64_t)(io2_a_src - iop_a_src)) < 4) {
if (v_string_length > 0) {
*iop_a_dst++ = wuffs_base__make_token(
- (((uint64_t)((self->private_impl.f_string_value_minor | 1 | 512))) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
+ (((uint64_t)(4194819)) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
(((uint64_t)(1)) << WUFFS_BASE__TOKEN__CONTINUED__SHIFT) |
(((uint64_t)(v_string_length)) << WUFFS_BASE__TOKEN__LENGTH__SHIFT));
v_string_length = 0;
@@ -26482,53 +26509,6 @@
v_char = 0;
goto label__string_loop_outer__continue;
}
- v_multi_byte_utf8 = ((uint32_t)(wuffs_base__load_u24le__no_bounds_check(iop_a_src)));
- if ((v_multi_byte_utf8 & 12632064) == 8421376) {
- v_multi_byte_utf8 = ((61440 & (v_multi_byte_utf8 << 12)) | (4032 & (v_multi_byte_utf8 >> 2)) | (63 & (v_multi_byte_utf8 >> 16)));
- if ((2047 < v_multi_byte_utf8) && ((v_multi_byte_utf8 < 55296) || (57343 < v_multi_byte_utf8))) {
- (iop_a_src += 3, wuffs_base__make_empty_struct());
- if (v_string_length >= 65528) {
- *iop_a_dst++ = wuffs_base__make_token(
- (((uint64_t)((self->private_impl.f_string_value_minor | 1 | 512))) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
- (((uint64_t)(1)) << WUFFS_BASE__TOKEN__CONTINUED__SHIFT) |
- (((uint64_t)((v_string_length + 3))) << WUFFS_BASE__TOKEN__LENGTH__SHIFT));
- v_string_length = 0;
- goto label__string_loop_outer__continue;
- }
- v_string_length += 3;
- goto label__string_loop_inner__continue;
- }
- }
- } else if (v_char == 5) {
- if (((uint64_t)(io2_a_src - iop_a_src)) < 4) {
- if (v_string_length > 0) {
- *iop_a_dst++ = wuffs_base__make_token(
- (((uint64_t)((self->private_impl.f_string_value_minor | 1 | 512))) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
- (((uint64_t)(1)) << WUFFS_BASE__TOKEN__CONTINUED__SHIFT) |
- (((uint64_t)(v_string_length)) << WUFFS_BASE__TOKEN__LENGTH__SHIFT));
- v_string_length = 0;
- if (((uint64_t)(io2_a_dst - iop_a_dst)) <= 0) {
- goto label__string_loop_outer__continue;
- }
- }
- if (a_src && a_src->meta.closed) {
- if (self->private_impl.f_quirks[19]) {
- *iop_a_dst++ = wuffs_base__make_token(
- (((uint64_t)(6356989)) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
- (((uint64_t)(1)) << WUFFS_BASE__TOKEN__CONTINUED__SHIFT) |
- (((uint64_t)(1)) << WUFFS_BASE__TOKEN__LENGTH__SHIFT));
- (iop_a_src += 1, wuffs_base__make_empty_struct());
- goto label__string_loop_outer__continue;
- }
- status = wuffs_base__make_status(wuffs_json__error__bad_utf_8);
- goto exit;
- }
- status = wuffs_base__make_status(wuffs_base__suspension__short_read);
- WUFFS_BASE__COROUTINE_SUSPENSION_POINT_MAYBE_SUSPEND(14);
- v_string_length = 0;
- v_char = 0;
- goto label__string_loop_outer__continue;
- }
v_multi_byte_utf8 = wuffs_base__load_u32le__no_bounds_check(iop_a_src);
if ((v_multi_byte_utf8 & 3233857536) == 2155905024) {
v_multi_byte_utf8 = ((1835008 & (v_multi_byte_utf8 << 18)) |
@@ -26539,7 +26519,7 @@
(iop_a_src += 4, wuffs_base__make_empty_struct());
if (v_string_length >= 65528) {
*iop_a_dst++ = wuffs_base__make_token(
- (((uint64_t)((self->private_impl.f_string_value_minor | 1 | 512))) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
+ (((uint64_t)(4194819)) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
(((uint64_t)(1)) << WUFFS_BASE__TOKEN__CONTINUED__SHIFT) |
(((uint64_t)((v_string_length + 4))) << WUFFS_BASE__TOKEN__LENGTH__SHIFT));
v_string_length = 0;
@@ -26552,7 +26532,7 @@
}
if (v_string_length > 0) {
*iop_a_dst++ = wuffs_base__make_token(
- (((uint64_t)((self->private_impl.f_string_value_minor | 1 | 512))) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
+ (((uint64_t)(4194819)) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
(((uint64_t)(1)) << WUFFS_BASE__TOKEN__CONTINUED__SHIFT) |
(((uint64_t)(v_string_length)) << WUFFS_BASE__TOKEN__LENGTH__SHIFT));
v_string_length = 0;
@@ -26569,6 +26549,10 @@
(iop_a_src += 1, wuffs_base__make_empty_struct());
goto label__string_loop_outer__continue;
}
+ if (v_char == 138) {
+ status = wuffs_base__make_status(wuffs_json__error__bad_new_line_in_a_string);
+ goto exit;
+ }
status = wuffs_base__make_status(wuffs_json__error__bad_c0_control_code);
goto exit;
}
@@ -26585,7 +26569,7 @@
}
}
label__string_loop_outer__break:;
- label__2__continue:;
+ label__1__continue:;
while (true) {
if (((uint64_t)(io2_a_src - iop_a_src)) <= 0) {
if (a_src && a_src->meta.closed) {
@@ -26593,24 +26577,21 @@
goto exit;
}
status = wuffs_base__make_status(wuffs_base__suspension__short_read);
- WUFFS_BASE__COROUTINE_SUSPENSION_POINT_MAYBE_SUSPEND(15);
- goto label__2__continue;
+ WUFFS_BASE__COROUTINE_SUSPENSION_POINT_MAYBE_SUSPEND(14);
+ goto label__1__continue;
}
if (((uint64_t)(io2_a_dst - iop_a_dst)) <= 0) {
status = wuffs_base__make_status(wuffs_base__suspension__short_write);
- WUFFS_BASE__COROUTINE_SUSPENSION_POINT_MAYBE_SUSPEND(16);
- goto label__2__continue;
+ WUFFS_BASE__COROUTINE_SUSPENSION_POINT_MAYBE_SUSPEND(15);
+ goto label__1__continue;
}
(iop_a_src += 1, wuffs_base__make_empty_struct());
*iop_a_dst++ = wuffs_base__make_token(
- (((uint64_t)((self->private_impl.f_string_value_minor |
- 1 |
- 16 |
- 256))) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
+ (((uint64_t)(4194579)) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
(((uint64_t)(1)) << WUFFS_BASE__TOKEN__LENGTH__SHIFT));
- goto label__2__break;
+ goto label__1__break;
}
- label__2__break:;
+ label__1__break:;
if (0 == (v_expect & (((uint32_t)(1)) << 4))) {
v_expect = 4104;
goto label__outer__continue;
@@ -26619,7 +26600,7 @@
} else if (v_class == 2) {
(iop_a_src += 1, wuffs_base__make_empty_struct());
*iop_a_dst++ = wuffs_base__make_token(
- (((uint64_t)(0)) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
+ (((uint64_t)(1)) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
(((uint64_t)(1)) << WUFFS_BASE__TOKEN__LENGTH__SHIFT));
if (0 == (v_expect & (((uint32_t)(1)) << 8))) {
if (self->private_impl.f_quirks[13]) {
@@ -26638,7 +26619,7 @@
} else if (v_class == 3) {
(iop_a_src += 1, wuffs_base__make_empty_struct());
*iop_a_dst++ = wuffs_base__make_token(
- (((uint64_t)(0)) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
+ (((uint64_t)(1)) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
(((uint64_t)(1)) << WUFFS_BASE__TOKEN__LENGTH__SHIFT));
v_expect = 7858;
goto label__outer__continue;
@@ -26661,7 +26642,7 @@
*iop_a_dst++ = wuffs_base__make_token(
(((uint64_t)(v_vminor)) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
(((uint64_t)(v_number_length)) << WUFFS_BASE__TOKEN__LENGTH__SHIFT));
- goto label__3__break;
+ goto label__2__break;
}
while (v_number_length > 0) {
v_number_length -= 1;
@@ -26680,7 +26661,7 @@
if (a_src) {
a_src->meta.ri = ((size_t)(iop_a_src - a_src->data.ptr));
}
- WUFFS_BASE__COROUTINE_SUSPENSION_POINT(17);
+ WUFFS_BASE__COROUTINE_SUSPENSION_POINT(16);
status = wuffs_json__decoder__decode_inf_nan(self, a_dst, a_src);
if (a_dst) {
iop_a_dst = a_dst->data.ptr + a_dst->meta.wi;
@@ -26691,7 +26672,7 @@
if (status.repr) {
goto suspend;
}
- goto label__3__break;
+ goto label__2__break;
}
status = wuffs_base__make_status(wuffs_json__error__bad_input);
goto exit;
@@ -26700,14 +26681,14 @@
goto exit;
} else {
status = wuffs_base__make_status(wuffs_base__suspension__short_read);
- WUFFS_BASE__COROUTINE_SUSPENSION_POINT_MAYBE_SUSPEND(18);
+ WUFFS_BASE__COROUTINE_SUSPENSION_POINT_MAYBE_SUSPEND(17);
while (((uint64_t)(io2_a_dst - iop_a_dst)) <= 0) {
status = wuffs_base__make_status(wuffs_base__suspension__short_write);
- WUFFS_BASE__COROUTINE_SUSPENSION_POINT_MAYBE_SUSPEND(19);
+ WUFFS_BASE__COROUTINE_SUSPENSION_POINT_MAYBE_SUSPEND(18);
}
}
}
- label__3__break:;
+ label__2__break:;
goto label__goto_parsed_a_leaf_value__break;
} else if (v_class == 5) {
v_vminor = 2113553;
@@ -26819,7 +26800,7 @@
goto label__goto_parsed_a_leaf_value__break;
} else if (v_match == 1) {
status = wuffs_base__make_status(wuffs_base__suspension__short_read);
- WUFFS_BASE__COROUTINE_SUSPENSION_POINT_MAYBE_SUSPEND(20);
+ WUFFS_BASE__COROUTINE_SUSPENSION_POINT_MAYBE_SUSPEND(19);
goto label__outer__continue;
}
} else if (v_class == 10) {
@@ -26836,7 +26817,7 @@
goto label__goto_parsed_a_leaf_value__break;
} else if (v_match == 1) {
status = wuffs_base__make_status(wuffs_base__suspension__short_read);
- WUFFS_BASE__COROUTINE_SUSPENSION_POINT_MAYBE_SUSPEND(21);
+ WUFFS_BASE__COROUTINE_SUSPENSION_POINT_MAYBE_SUSPEND(20);
goto label__outer__continue;
}
} else if (v_class == 11) {
@@ -26853,7 +26834,7 @@
goto label__goto_parsed_a_leaf_value__break;
} else if (v_match == 1) {
status = wuffs_base__make_status(wuffs_base__suspension__short_read);
- WUFFS_BASE__COROUTINE_SUSPENSION_POINT_MAYBE_SUSPEND(22);
+ WUFFS_BASE__COROUTINE_SUSPENSION_POINT_MAYBE_SUSPEND(21);
goto label__outer__continue;
}
if (self->private_impl.f_quirks[14]) {
@@ -26863,7 +26844,7 @@
if (a_src) {
a_src->meta.ri = ((size_t)(iop_a_src - a_src->data.ptr));
}
- WUFFS_BASE__COROUTINE_SUSPENSION_POINT(23);
+ WUFFS_BASE__COROUTINE_SUSPENSION_POINT(22);
status = wuffs_json__decoder__decode_inf_nan(self, a_dst, a_src);
if (a_dst) {
iop_a_dst = a_dst->data.ptr + a_dst->meta.wi;
@@ -26884,7 +26865,7 @@
if (a_src) {
a_src->meta.ri = ((size_t)(iop_a_src - a_src->data.ptr));
}
- WUFFS_BASE__COROUTINE_SUSPENSION_POINT(24);
+ WUFFS_BASE__COROUTINE_SUSPENSION_POINT(23);
status = wuffs_json__decoder__decode_comment(self, a_dst, a_src);
if (a_dst) {
iop_a_dst = a_dst->data.ptr + a_dst->meta.wi;
@@ -26915,7 +26896,7 @@
if (a_src) {
a_src->meta.ri = ((size_t)(iop_a_src - a_src->data.ptr));
}
- WUFFS_BASE__COROUTINE_SUSPENSION_POINT(25);
+ WUFFS_BASE__COROUTINE_SUSPENSION_POINT(24);
status = wuffs_json__decoder__decode_trailing_new_line(self, a_dst, a_src);
if (a_dst) {
iop_a_dst = a_dst->data.ptr + a_dst->meta.wi;
@@ -27373,7 +27354,7 @@
if (((uint64_t)(io2_a_src - iop_a_src)) <= 0) {
if (v_length > 0) {
*iop_a_dst++ = wuffs_base__make_token(
- (((uint64_t)(1)) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
+ (((uint64_t)(4)) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
(((uint64_t)(1)) << WUFFS_BASE__TOKEN__CONTINUED__SHIFT) |
(((uint64_t)(v_length)) << WUFFS_BASE__TOKEN__LENGTH__SHIFT));
}
@@ -27390,7 +27371,7 @@
if (v_c == 10) {
(iop_a_src += 1, wuffs_base__make_empty_struct());
*iop_a_dst++ = wuffs_base__make_token(
- (((uint64_t)(1)) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
+ (((uint64_t)(4)) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
(((uint64_t)((v_length + 1))) << WUFFS_BASE__TOKEN__LENGTH__SHIFT));
status = wuffs_base__make_status(NULL);
goto ok;
@@ -27398,7 +27379,7 @@
(iop_a_src += 1, wuffs_base__make_empty_struct());
if (v_length >= 65533) {
*iop_a_dst++ = wuffs_base__make_token(
- (((uint64_t)(1)) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
+ (((uint64_t)(4)) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
(((uint64_t)(1)) << WUFFS_BASE__TOKEN__CONTINUED__SHIFT) |
(((uint64_t)((v_length + 1))) << WUFFS_BASE__TOKEN__LENGTH__SHIFT));
v_length = 0;
@@ -29084,7 +29065,7 @@
dec->set_quirk_enabled(quirks.ptr[i], true);
}
- // Prepare the wuffs_base__tok_buffer.
+ // Prepare the wuffs_base__tok_buffer. 256 tokens is 2KiB.
wuffs_base__token tok_array[256];
wuffs_base__token_buffer tok_buf =
wuffs_base__slice_token__writer(wuffs_base__make_slice_token(
@@ -29380,11 +29361,6 @@
: error_message(std::move(error_message0)),
cursor_position(cursor_position0) {}
-std::string //
-DecodeJsonCallbacks::AppendByteString(std::string&& val) {
- return "wuffs_aux::DecodeJson: unexpected JSON byte string";
-}
-
void //
DecodeJsonCallbacks::Done(DecodeJsonResult& result,
sync_io::Input& input,
@@ -29498,32 +29474,6 @@
return std::make_pair(std::move(fragment), i);
}
-std::string //
-DecodeJson_DecodeBackslashX(std::string& str,
- uint8_t* token_ptr,
- size_t token_len) {
- wuffs_base__slice_u8 encoded =
- wuffs_base__make_slice_u8(token_ptr, token_len);
- while (encoded.len > 0) {
- uint8_t decoded[64];
- constexpr bool src_closed = true;
- wuffs_base__transform__output o = wuffs_base__base_16__decode4(
- wuffs_base__make_slice_u8(&decoded[0], sizeof decoded), encoded,
- src_closed, WUFFS_BASE__BASE_16__DEFAULT_OPTIONS);
- if (o.status.is_error()) {
- return o.status.message();
- } else if ((o.num_dst > (sizeof decoded)) || (o.num_src > encoded.len)) {
- return "wuffs_aux::DecodeJson: internal error: inconsistent base16 "
- "decoding";
- }
- str.append( // Convert from (uint8_t*).
- static_cast<const char*>(static_cast<void*>(&decoded[0])), o.num_dst);
- encoded.ptr += o.num_src;
- encoded.len -= o.num_src;
- }
- return "";
-}
-
// --------
std::string //
@@ -29582,14 +29532,6 @@
const char* ptr = // Convert from (uint8_t*).
static_cast<const char*>(static_cast<void*>(token_ptr));
str.append(ptr, token_len);
- } else if (
- vbd &
- WUFFS_BASE__TOKEN__VBD__STRING__CONVERT_1_DST_4_SRC_BACKSLASH_X) {
- ret_error_message =
- DecodeJson_DecodeBackslashX(str, token_ptr, token_len);
- if (!ret_error_message.empty()) {
- goto done;
- }
} else {
goto fail;
}
@@ -29752,7 +29694,7 @@
}
}
- // Prepare the wuffs_base__tok_buffer.
+ // Prepare the wuffs_base__tok_buffer. 256 tokens is 2KiB.
wuffs_base__token tok_array[256];
wuffs_base__token_buffer tok_buf =
wuffs_base__slice_token__writer(wuffs_base__make_slice_token(
@@ -29818,24 +29760,13 @@
const char* ptr = // Convert from (uint8_t*).
static_cast<const char*>(static_cast<void*>(token_ptr));
str.append(ptr, token_len);
- } else if (
- vbd &
- WUFFS_BASE__TOKEN__VBD__STRING__CONVERT_1_DST_4_SRC_BACKSLASH_X) {
- ret_error_message =
- DecodeJson_DecodeBackslashX(str, token_ptr, token_len);
- if (!ret_error_message.empty()) {
- goto done;
- }
} else {
goto fail;
}
if (token.continued()) {
continue;
}
- ret_error_message =
- (vbd & WUFFS_BASE__TOKEN__VBD__STRING__CHAIN_MUST_BE_UTF_8)
- ? callbacks.AppendTextString(std::move(str))
- : callbacks.AppendByteString(std::move(str));
+ ret_error_message = callbacks.AppendTextString(std::move(str));
str.clear();
goto parsed_a_value;
}