Skip to content

Commit 5a2bf6d

Browse files
authored
Merge pull request #4346 from Tyriar/4314_2
Clamp start and end in render service to ensure they're valid
2 parents d34bb5e + 568e4c6 commit 5a2bf6d

File tree

2 files changed

+10
-5
lines changed

2 files changed

+10
-5
lines changed

addons/xterm-addon-webgl/src/WebglRenderer.ts

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -352,7 +352,7 @@ export class WebglRenderer extends Disposable implements IRenderer {
352352
let lastBg: number;
353353
let y: number;
354354
let row: number;
355-
let line: IBufferLine | undefined;
355+
let line: IBufferLine;
356356
let joinedRanges: [number, number][];
357357
let isJoined: boolean;
358358
let lastCharX: number;
@@ -365,10 +365,7 @@ export class WebglRenderer extends Disposable implements IRenderer {
365365

366366
for (y = start; y <= end; y++) {
367367
row = y + terminal.buffer.ydisp;
368-
line = terminal.buffer.lines.get(row);
369-
if (!line) {
370-
break;
371-
}
368+
line = terminal.buffer.lines.get(row)!;
372369
this._model.lineLengths[y] = 0;
373370
joinedRanges = this._characterJoinerService.getJoinedCharacters(row);
374371
for (x = 0; x < terminal.cols; x++) {

src/browser/services/RenderService.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,14 @@ export class RenderService extends Disposable implements IRenderService {
152152
if (!this._renderer) {
153153
return;
154154
}
155+
156+
// Since this is debounced, a resize event could have happened between the time a refresh was
157+
// requested and when this triggers. Clamp the values of start and end to ensure they're valid
158+
// given the current viewport state.
159+
start = Math.min(start, this._rowCount - 1);
160+
end = Math.min(end, this._rowCount - 1);
161+
162+
// Render
155163
this._renderer.renderRows(start, end);
156164

157165
// Update selection if needed

0 commit comments

Comments
 (0)