| 6979 | } |
| 6980 | |
| 6981 | bool start_object(std::size_t len) |
| 6982 | { |
| 6983 | // check callback for object start |
| 6984 | const bool keep = callback(static_cast<int>(ref_stack.size()), parse_event_t::object_start, discarded); |
| 6985 | keep_stack.push_back(keep); |
| 6986 | |
| 6987 | auto val = handle_value(BasicJsonType::value_t::object, true); |
| 6988 | ref_stack.push_back(val.second); |
| 6989 | |
| 6990 | // check object limit |
| 6991 | if (ref_stack.back() && JSON_HEDLEY_UNLIKELY(len != static_cast<std::size_t>(-1) && len > ref_stack.back()->max_size())) |
| 6992 | { |
| 6993 | JSON_THROW(out_of_range::create(408, concat("excessive object size: ", std::to_string(len)), ref_stack.back())); |
| 6994 | } |
| 6995 | |
| 6996 | return true; |
| 6997 | } |
| 6998 | |
| 6999 | bool key(string_t& val) |
| 7000 | { |