From 568e4c69354dca18823ea0b6aecedabb92f5b395 Mon Sep 17 00:00:00 2001 From: Daniel Imms <2193314+Tyriar@users.noreply.github.com> Date: Wed, 21 Dec 2022 16:55:03 -0800 Subject: [PATCH] Clamp start and end in render service to ensure they're valid Fixes #4314 --- src/browser/services/RenderService.ts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/browser/services/RenderService.ts b/src/browser/services/RenderService.ts index 75ca2867..c31d061a 100644 --- a/src/browser/services/RenderService.ts +++ b/src/browser/services/RenderService.ts @@ -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