[3.x] Change Node
children to use LocalVector
#107544
Merged
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.
There is no need for COW, it will only slow
Node
down.LocalVectori
(signed) rather thanLocalVector
One gotcha when changing between
Vector
andLocalVector
is that the defaultsize
forLocalVector
is unsigned, andVector
is signed. Usually unsigned makes more sense for counters, but in this case,children
is used in quite a lot of code inNode
and in the interests of not introducing any new bugs, I have just changed it to thesigned
variation ofLocalVector
.If we desire to change to unsigned
LocalVector
, that is probably best as a follow up, then modify the counters etc inNode.cpp
.Notes
LocalVector
toVector
#107543, as we are usingexplicit
LocalVector
to detect any expensive conversions (there were none).Node
children are used a lot.Spatial
children andCanvasItem
children, really should have converted these when we createdLocalVector
, but hey, better late than never. 😁Node
children.