Fix RebuildBuffer block segment newline bug#224
Merged
Conversation
RebuildBuffer() cleared the buffer then called EnsureBlockNewLine() which checked _buffer.HasContentOnCurrentLine. Since the buffer was just cleared, this returned false and no newline was inserted before block segments, causing both 'Static line' and the spinner to end up on the same buffer line. The test then crashed reading index [1]. Fix: moved the block-segment newline check inline, checking buffer state after the previous element has been appended rather than before.
This was referenced May 24, 2026
Merged
Aaronontheweb
added a commit
that referenced
this pull request
May 24, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Problem
RebuildBuffer()clears the buffer then callsEnsureBlockNewLine()to check if a block segment needs a preceding newline. But since the buffer was just cleared,HasContentOnCurrentLinereturns false and no newline gets inserted — so both 'Static line' and the spinner end up on the same buffer line, causingGetAllStyledLines()[1]to crash.Fix
Moved the block-segment newline check inline in
RebuildBuffer()and check buffer state after the previous element has been appended, not before.