Save a tiny bit of memory by rearranging fields; also using the newer way to "unsafely" instantiate a slice: #150
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.
By rearranging the fields the memory usage per type was reduced as follows:
Parser
24 -> 16 bytesQueryError
24 -> 8 bytesQueryCapture
16 -> 8 bytesQueryMatch
16 -> 8 bytesreadFuncsMap
16 -> 8 bytesIn practice, unless you capture the matches for the entire tree at once (AND the tree is large) there won't be any difference. However, typically you'd use
cursor.SetPointRange()
and focus on a particular area of the tree, so these savings won't be observed in practice unless somehow you are creating lots ofQueryCapture
andQueryMatch
nodes.Oh, and also added a TODO note, there's something in there that looks out of place and needs to be investigated further (a useless break statement).