When capacity of padded_string_view is given a size smaller than length, padding() is wrapping.
Therefore, parser::iterate_raw does not return INSUFFICIENT_PADDING error.
simdjson::ondemand::parser parser;
size_t bad_capacity = 0;
auto doc = parser.iterate("{\"a\": 0 }", bad_capacity);
auto error = doc.error(); // SUCCESS
It seems addition is better.
if (json.capacity() < json.length() + SIMDJSON_PADDING) { return INSUFFICIENT_PADDING; }
Configuration
- OS: Windows 10 64-bit
- Compiler: MSVC 17.8.6
- Version: 3.6.4
- Optimization setting: /Od
When
capacityofpadded_string_viewis given a size smaller thanlength,padding()is wrapping.Therefore,
parser::iterate_rawdoes not returnINSUFFICIENT_PADDINGerror.It seems addition is better.
Configuration