Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes a bug parsing nested arrays in client mode.
When
parse_stack_.emplace_back(len, cached_expr_)
is called before creating the new array, the root array would be added toparse_stack_
twice and the leaf array would never be added. That means when a stack was popped,cached_expr_
would end up pointing to the wrong array.Such as the array
[[['foo'],['bar']],['car']]
("*2\r\n*2\r\n*1\r\n$3\r\nfoo\r\n*1\r\n$3\r\nbar\r\n*1\r\n$3\r\ncar\r\n"
) would have been parsed as[[['foo']],['bar'],['car']]
, since afterfoo
was parsed such that the nested array was at capacity, popping the stack would end up pointingcached_expr_
to the root array instead of the first nested array.