| 7050 | } |
| 7051 | |
| 7052 | bool start_array(std::size_t len) |
| 7053 | { |
| 7054 | const bool keep = callback(static_cast<int>(ref_stack.size()), parse_event_t::array_start, discarded); |
| 7055 | keep_stack.push_back(keep); |
| 7056 | |
| 7057 | auto val = handle_value(BasicJsonType::value_t::array, true); |
| 7058 | ref_stack.push_back(val.second); |
| 7059 | |
| 7060 | // check array limit |
| 7061 | if (ref_stack.back() && JSON_HEDLEY_UNLIKELY(len != static_cast<std::size_t>(-1) && len > ref_stack.back()->max_size())) |
| 7062 | { |
| 7063 | JSON_THROW(out_of_range::create(408, concat("excessive array size: ", std::to_string(len)), ref_stack.back())); |
| 7064 | } |
| 7065 | |
| 7066 | return true; |
| 7067 | } |
| 7068 | |
| 7069 | bool end_array() |
| 7070 | { |