From 56675d1643f5ffd11cfb3974c30ef92bc02fcb0d Mon Sep 17 00:00:00 2001 From: Matt Bierner <12821956+mjbvz@users.noreply.github.com> Date: Wed, 25 Mar 2026 13:12:52 -0700 Subject: [PATCH 1/2] Guard against duplicate disposals --- .../browser/widget/chatContentParts/chatContentCodePools.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatContentCodePools.ts b/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatContentCodePools.ts index 07358906a3fd7..9fa70747cb455 100644 --- a/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatContentCodePools.ts +++ b/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatContentCodePools.ts @@ -10,6 +10,7 @@ import { IChatRendererDelegate } from '../chatListRenderer.js'; import { ChatEditorOptions } from '../chatOptions.js'; import { CodeBlockPart, CodeCompareBlockPart } from './codeBlockPart.js'; import { ResourcePool, IDisposableReference } from './chatCollections.js'; +import { createSingleCallFunction } from '../../../../../../base/common/functional.js'; export class EditorPool extends Disposable { @@ -78,11 +79,11 @@ export class DiffEditorPool extends Disposable { return { object: codeBlock, isStale: () => stale, - dispose: () => { + dispose: createSingleCallFunction(() => { codeBlock.reset(); stale = true; this._pool.release(codeBlock); - } + }) }; } From cda158ca7cc8a911c0376e461c67e01f05c7b31b Mon Sep 17 00:00:00 2001 From: Matt Bierner <12821956+mjbvz@users.noreply.github.com> Date: Wed, 25 Mar 2026 13:16:56 -0700 Subject: [PATCH 2/2] Update editor pool too --- .../browser/widget/chatContentParts/chatContentCodePools.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatContentCodePools.ts b/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatContentCodePools.ts index 9fa70747cb455..9b40177fedf5d 100644 --- a/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatContentCodePools.ts +++ b/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatContentCodePools.ts @@ -39,11 +39,11 @@ export class EditorPool extends Disposable { return { object: codeBlock, isStale: () => stale, - dispose: () => { + dispose: createSingleCallFunction(() => { codeBlock.reset(); stale = true; this._pool.release(codeBlock); - } + }) }; }