Skip to content

Commit

Permalink
Merge pull request #4346 from Tyriar/4314_2
Browse files Browse the repository at this point in the history
Clamp start and end in render service to ensure they're valid
  • Loading branch information
Tyriar committed Dec 22, 2022
2 parents d34bb5e + 568e4c6 commit 5a2bf6d
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 5 deletions.
7 changes: 2 additions & 5 deletions addons/xterm-addon-webgl/src/WebglRenderer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -352,7 +352,7 @@ export class WebglRenderer extends Disposable implements IRenderer {
let lastBg: number;
let y: number;
let row: number;
let line: IBufferLine | undefined;
let line: IBufferLine;
let joinedRanges: [number, number][];
let isJoined: boolean;
let lastCharX: number;
Expand All @@ -365,10 +365,7 @@ export class WebglRenderer extends Disposable implements IRenderer {

for (y = start; y <= end; y++) {
row = y + terminal.buffer.ydisp;
line = terminal.buffer.lines.get(row);
if (!line) {
break;
}
line = terminal.buffer.lines.get(row)!;
this._model.lineLengths[y] = 0;
joinedRanges = this._characterJoinerService.getJoinedCharacters(row);
for (x = 0; x < terminal.cols; x++) {
Expand Down
8 changes: 8 additions & 0 deletions src/browser/services/RenderService.ts
Original file line number Diff line number Diff line change
Expand Up @@ -152,6 +152,14 @@ export class RenderService extends Disposable implements IRenderService {
if (!this._renderer) {
return;
}

// Since this is debounced, a resize event could have happened between the time a refresh was
// requested and when this triggers. Clamp the values of start and end to ensure they're valid
// given the current viewport state.
start = Math.min(start, this._rowCount - 1);
end = Math.min(end, this._rowCount - 1);

// Render
this._renderer.renderRows(start, end);

// Update selection if needed
Expand Down

0 comments on commit 5a2bf6d

Please sign in to comment.