fix: memory leak in chat widget#284288
Merged
roblourens merged 2 commits intomicrosoft:mainfrom Dec 19, 2025
Merged
Conversation
roblourens
approved these changes
Dec 19, 2025
| }, 0); | ||
|
|
||
| this._register(dom.scheduleAtNextAnimationFrame(dom.getWindow(this.listContainer), () => { | ||
| this.visibilityAnimationFrameDisposable.value = dom.scheduleAtNextAnimationFrame(dom.getWindow(this.listContainer), () => { |
Member
There was a problem hiding this comment.
I think this can be merged with the one above but I can clean that up
Tyriar
approved these changes
Dec 19, 2025
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes a two memory in chat widget related to registering animation frames.
Details
When
setVisibleis called, an animation Frame Disposable gets registered usingthis._register(dom.scheduleAtNextAnimationFrame)), making the number of registered disposables grow over timeSimilarly, for
onDidChangeTreeContentHeight, a disposable also gets registered each time:Fix
The fix uses a
MutableDisposableso that there can be at most one animation frame disposable registered.Before
When sending a chat message and clearing all chat messages 37 times, the number of functions in
ChatWidget.onDidChangeTreeContentHeightandAnimationFrameQueueItemseems to grow by 1 each time.After
When sending a chat message and clearing all chat messages 37 times, the number of functions in
ChatWidget.onDidChangeTreeContentHeightandAnimationFrameQueueItemstays constant: