Skip to content

Commit 277a92c

Browse files
committed
Fix sixel crash when buffer is reflowed.
1 parent a7e47b7 commit 277a92c

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

src/terminal/adapter/SixelParser.cpp

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -715,8 +715,16 @@ void SixelParser::_eraseImageBufferRows(const int rowCount, const til::CoordType
715715
const auto pixelCount = rowCount * _cellSize.height;
716716
const auto bufferOffset = rowOffset * _cellSize.height * _imageMaxWidth;
717717
const auto bufferOffsetEnd = bufferOffset + pixelCount * _imageMaxWidth;
718-
_imageBuffer.erase(_imageBuffer.begin() + bufferOffset, _imageBuffer.begin() + bufferOffsetEnd);
719-
_imageCursor.y -= pixelCount;
718+
if (bufferOffsetEnd >= _imageBuffer.size())
719+
{
720+
_imageBuffer.clear();
721+
_imageCursor.y = 0;
722+
}
723+
else
724+
{
725+
_imageBuffer.erase(_imageBuffer.begin() + bufferOffset, _imageBuffer.begin() + bufferOffsetEnd);
726+
_imageCursor.y -= pixelCount;
727+
}
720728
}
721729

722730
void SixelParser::_maybeFlushImageBuffer(const bool endOfSequence)

0 commit comments

Comments
 (0)