| 5632 | } |
| 5633 | |
| 5634 | bool start_array(std::size_t len) |
| 5635 | { |
| 5636 | const bool keep = callback(static_cast<int>(ref_stack.size()), parse_event_t::array_start, discarded); |
| 5637 | keep_stack.push_back(keep); |
| 5638 | |
| 5639 | auto val = handle_value(BasicJsonType::value_t::array, true); |
| 5640 | ref_stack.push_back(val.second); |
| 5641 | |
| 5642 | // check array limit |
| 5643 | if (ref_stack.back() && JSON_HEDLEY_UNLIKELY(len != std::size_t(-1) && len > ref_stack.back()->max_size())) |
| 5644 | { |
| 5645 | JSON_THROW(out_of_range::create(408, "excessive array size: " + std::to_string(len))); |
| 5646 | } |
| 5647 | |
| 5648 | return true; |
| 5649 | } |
| 5650 | |
| 5651 | bool end_array() |
| 5652 | { |