! @return whether array creation completed */
| 6800 | @return whether array creation completed |
| 6801 | */ |
| 6802 | bool get_ubjson_array() |
| 6803 | { |
| 6804 | std::pair<std::size_t, int> size_and_type; |
| 6805 | if (JSON_HEDLEY_UNLIKELY(not get_ubjson_size_type(size_and_type))) |
| 6806 | { |
| 6807 | return false; |
| 6808 | } |
| 6809 | |
| 6810 | if (size_and_type.first != string_t::npos) |
| 6811 | { |
| 6812 | if (JSON_HEDLEY_UNLIKELY(not sax->start_array(size_and_type.first))) |
| 6813 | { |
| 6814 | return false; |
| 6815 | } |
| 6816 | |
| 6817 | if (size_and_type.second != 0) |
| 6818 | { |
| 6819 | if (size_and_type.second != 'N') |
| 6820 | { |
| 6821 | for (std::size_t i = 0; i < size_and_type.first; ++i) |
| 6822 | { |
| 6823 | if (JSON_HEDLEY_UNLIKELY(not get_ubjson_value(size_and_type.second))) |
| 6824 | { |
| 6825 | return false; |
| 6826 | } |
| 6827 | } |
| 6828 | } |
| 6829 | } |
| 6830 | else |
| 6831 | { |
| 6832 | for (std::size_t i = 0; i < size_and_type.first; ++i) |
| 6833 | { |
| 6834 | if (JSON_HEDLEY_UNLIKELY(not parse_ubjson_internal())) |
| 6835 | { |
| 6836 | return false; |
| 6837 | } |
| 6838 | } |
| 6839 | } |
| 6840 | } |
| 6841 | else |
| 6842 | { |
| 6843 | if (JSON_HEDLEY_UNLIKELY(not sax->start_array(std::size_t(-1)))) |
| 6844 | { |
| 6845 | return false; |
| 6846 | } |
| 6847 | |
| 6848 | while (current != ']') |
| 6849 | { |
| 6850 | if (JSON_HEDLEY_UNLIKELY(not parse_ubjson_internal(false))) |
| 6851 | { |
| 6852 | return false; |
| 6853 | } |
| 6854 | get_ignore_noop(); |
| 6855 | } |
| 6856 | } |
| 6857 | |
| 6858 | return sax->end_array(); |
| 6859 | } |
nothing calls this directly
no test coverage detected