From ea7571c2b91e99df37ca1e1009c28b25e528e923 Mon Sep 17 00:00:00 2001 From: Daniel Imms <2193314+Tyriar@users.noreply.github.com> Date: Fri, 16 Dec 2022 10:42:05 -0800 Subject: [PATCH] Fix NPE in webgl renderer Theory is this can happen when a resize down happens as end will be too big See microsoft/vscode#166878 --- addons/xterm-addon-webgl/src/WebglRenderer.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/addons/xterm-addon-webgl/src/WebglRenderer.ts b/addons/xterm-addon-webgl/src/WebglRenderer.ts index db379214..3cbd429c 100644 --- a/addons/xterm-addon-webgl/src/WebglRenderer.ts +++ b/addons/xterm-addon-webgl/src/WebglRenderer.ts @@ -351,7 +351,7 @@ export class WebglRenderer extends Disposable implements IRenderer { let lastBg: number; let y: number; let row: number; - let line: IBufferLine; + let line: IBufferLine | undefined; let joinedRanges: [number, number][]; let isJoined: boolean; let lastCharX: number; @@ -364,7 +364,10 @@ export class WebglRenderer extends Disposable implements IRenderer { for (y = start; y <= end; y++) { row = y + terminal.buffer.ydisp; - line = terminal.buffer.lines.get(row)!; + line = terminal.buffer.lines.get(row); + if (!line) { + break; + } this._model.lineLengths[y] = 0; joinedRanges = this._characterJoinerService.getJoinedCharacters(row); for (x = 0; x < terminal.cols; x++) {