@@ -57,26 +57,6 @@ class json_iterator {
57
57
logger::log_line (*this , " " , " ERROR" , error);
58
58
}
59
59
60
- private:
61
- template <typename T>
62
- SIMDJSON_WARN_UNUSED simdjson_really_inline bool empty_object (T &visitor) {
63
- if (peek_next_char () == ' }' ) {
64
- advance ();
65
- visitor.empty_object (*this );
66
- return true ;
67
- }
68
- return false ;
69
- }
70
- template <typename T>
71
- SIMDJSON_WARN_UNUSED simdjson_really_inline bool empty_array (T &visitor) {
72
- if (peek_next_char () == ' ]' ) {
73
- advance ();
74
- visitor.empty_array (*this );
75
- return true ;
76
- }
77
- return false ;
78
- }
79
-
80
60
simdjson_really_inline uint8_t last_structural () {
81
61
return buf[dom_parser.structural_indexes [dom_parser.n_structural_indexes - 1 ]];
82
62
}
@@ -116,8 +96,8 @@ SIMDJSON_WARN_UNUSED simdjson_really_inline error_code json_iterator::walk_docum
116
96
}
117
97
118
98
switch (*value) {
119
- case ' {' : if (! empty_object (visitor) ) { goto object_begin; } ; break ;
120
- case ' [' : if (! empty_array (visitor) ) { goto array_begin; } ; break ;
99
+ case ' {' : if (peek_next_char () == ' } ' ) { advance (); visitor. empty_object (* this ) ; break ; } goto object_begin ;
100
+ case ' [' : if (peek_next_char () == ' ] ' ) { advance (); visitor. empty_array (* this ) ; break ; } goto array_begin ;
121
101
default : SIMDJSON_TRY ( visitor.root_primitive (*this , value) ); break ;
122
102
}
123
103
}
@@ -143,8 +123,8 @@ SIMDJSON_WARN_UNUSED simdjson_really_inline error_code json_iterator::walk_docum
143
123
{
144
124
auto value = advance ();
145
125
switch (*value) {
146
- case ' {' : if (! empty_object (visitor) ) { goto object_begin; } ; break ;
147
- case ' [' : if (! empty_array (visitor) ) { goto array_begin; } ; break ;
126
+ case ' {' : if (peek_next_char () == ' } ' ) { advance (); visitor. empty_object (* this ) ; break ; } goto object_begin ;
127
+ case ' [' : if (peek_next_char () == ' ] ' ) { advance (); visitor. empty_array (* this ) ; break ; } goto array_begin ;
148
128
default : SIMDJSON_TRY ( visitor.primitive (*this , value) ); break ;
149
129
}
150
130
}
@@ -182,8 +162,8 @@ SIMDJSON_WARN_UNUSED simdjson_really_inline error_code json_iterator::walk_docum
182
162
{
183
163
auto value = advance ();
184
164
switch (*value) {
185
- case ' {' : if (! empty_object (visitor) ) { goto object_begin; } ; break ;
186
- case ' [' : if (! empty_array (visitor) ) { goto array_begin; } ; break ;
165
+ case ' {' : if (peek_next_char () == ' } ' ) { advance (); visitor. empty_object (* this ) ; break ; } goto object_begin ;
166
+ case ' [' : if (peek_next_char () == ' ] ' ) { advance (); visitor. empty_array (* this ) ; break ; } goto array_begin ;
187
167
default : SIMDJSON_TRY ( visitor.primitive (*this , value) ); break ;
188
168
}
189
169
}
0 commit comments