From a8632435a62ddef8bfcb389b05a9ddc673af4947 Mon Sep 17 00:00:00 2001 From: Daniel Imms <2193314+Tyriar@users.noreply.github.com> Date: Mon, 1 Jun 2026 20:58:09 -0700 Subject: [PATCH] fix(addon-image): skip missing lines in viewportResize viewportResize walks the full buffer when the terminal widens but called line.getBg without checking that lines.get(row) returned a line. During resize or trim gaps that could throw and abort tile expansion for remaining rows. Skip missing buffer lines with continue, consistent with render(). Co-authored-by: Cursor --- addons/addon-image/src/ImageStorage.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/addons/addon-image/src/ImageStorage.ts b/addons/addon-image/src/ImageStorage.ts index 0d6af6a52..6c43c46a2 100644 --- a/addons/addon-image/src/ImageStorage.ts +++ b/addons/addon-image/src/ImageStorage.ts @@ -514,6 +514,9 @@ export class ImageStorage implements IDisposable { const oldCol = this._viewportMetrics.cols - 1; for (let row = 0; row < rows; ++row) { const line = buffer.lines.get(row) as IBufferLineExt; + if (!line) { + continue; + } if (line.getBg(oldCol) & BgFlags.HAS_EXTENDED) { const e: IExtendedAttrsImage = line._extendedAttrs[oldCol] ?? EMPTY_ATTRS; const imageId = e.imageId;