godot
godot copied to clipboard
Make conversions from `NodePath` to `String` explicit.
trafficstars
- Follow up of https://github.com/godotengine/godot/pull/107379, https://github.com/godotengine/godot/pull/107295, and #107406
Same idea as above - we want to avoid accidentally converting to String, because it's expensive.
Some questionable String conversions are exposed in this PR. The most egregious are repeated calls for the same conversion in loops, and others are using NodePath to verify that a string is path-like, and immediately converting back. If any of these are on hot paths, they should be fixed as a follow-up.
After this PR (and #107406), there are just 2 implicit String operator conversions left:
Variant- probably can't fix this now, Variant has all the implicit conversions.StringName- probably fine for now since it's usually fast (at least on repeated access).
So that concludes the String journey for now - but there's tons more implicit conversions elsewhere too 🫣
To be continued...