Avoid cloning Row
s during Galley::concat
#7649
Open
+35
−29
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.
Moves
ends_with_newline
intoPlacedRow
to avoid clones during layout.I don't think there was a rationale stronger than "don't change too much" for not doing this in #5411, so I should've just done this from the start.
This was a significant part of the profile for text layout (as it cloned almost every
Row
, even though it only needed to change a single boolean).Before:

After:

(note that these profiles focus solely on the top-level
Galley::layout_inline
subtree, also don't compare sample count as the duration of these tests was completely arbitrary)egui_demo_lib

*text_layout*
benches:(As usual, the tests fail for me even on master but the failures on master and with these changes seem the same :))