Optimize value_iterator::get_string()#2211
Optimize value_iterator::get_string()#2211CarlosEduR wants to merge 1 commit intosimdjson:masterfrom
Conversation
|
@lemire I'd like to confirm it before making the PR ready for review I believe the current changes are not covering all cases we've talked about. In case the character
is it correct? |
| const char* start = raw_json_string_result.value_unsafe().raw(); | ||
| const char* json = start; | ||
|
|
||
| for (; *json != '\0'; ++json) { |
There was a problem hiding this comment.
You don't think you need *json != '\0'... and, in fact, it is likely incorrect. The JSON spec does not forbid null characters inside the string as far as I can tell, and it does not enforce that the string be null terminated.
|
Let me do some work of my own (next few hours). |
|
Reproducing my comment here: Here is my current view. We should have a simple/cheap inlined function (which can use NEON/SSE2) equivalent to the following... std::none_of(s.begin(), s.end(),
[](char c) {
return c == '\\'; });One thing that @CarlosEduR did not have is that you can call Unfortunately the |
|
Closing this for now. |
Relates to: #1470