| 195 | } |
| 196 | |
| 197 | sonic_force_inline bool StartObject() noexcept { |
| 198 | if (cur_node_) { |
| 199 | parent_st_.emplace_back(parent_node_); |
| 200 | parent_node_ = cur_node_; |
| 201 | cur_node_ = nullptr; |
| 202 | if (!parent_node_->IsObject() || parent_node_->Size() == 0) { |
| 203 | parent_st_.emplace_back(parent_node_); |
| 204 | parent_node_ = nullptr; |
| 205 | } |
| 206 | |
| 207 | found_count_st_.emplace_back(found_node_count_); |
| 208 | found_node_count_ = 0; |
| 209 | |
| 210 | return true; |
| 211 | } |
| 212 | SONIC_ADD_NODE(); |
| 213 | NodeType *cur = &st_[np_ - 1]; |
| 214 | cur->o.next.ofs = parent_; |
| 215 | parent_ = np_ - 1; |
| 216 | return true; |
| 217 | } |
| 218 | |
| 219 | sonic_force_inline bool StartArray() noexcept { |
| 220 | if (cur_node_) { |