From bc2faaf3e6d623a9a32a6614cf2ed2e730f7600e Mon Sep 17 00:00:00 2001 From: baldurk Date: Thu, 5 Jan 2023 16:39:51 +0000 Subject: [PATCH] Track preview when calling UI callbacks to avoid use-after-free --- qrenderdoc/Windows/TextureViewer.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/qrenderdoc/Windows/TextureViewer.cpp b/qrenderdoc/Windows/TextureViewer.cpp index 733224d56..ab5450731 100644 --- a/qrenderdoc/Windows/TextureViewer.cpp +++ b/qrenderdoc/Windows/TextureViewer.cpp @@ -2424,7 +2424,7 @@ void TextureViewer::InitResourcePreview(ResourcePreview *prev, BoundResource res prev->setProperty("slice", sub.slice); prev->setProperty("cast", uint32_t(res.typeCast)); - GUIInvoke::call(this, [this, prev] { UI_PreviewResized(prev); }); + GUIInvoke::call(prev, [this, prev] { UI_PreviewResized(prev); }); } void TextureViewer::UI_PreviewResized(ResourcePreview *prev) @@ -2444,7 +2444,7 @@ void TextureViewer::UI_PreviewResized(ResourcePreview *prev) // new and swap to move the data into the lambda bytebuf *copy = new bytebuf; copy->swap(data); - GUIInvoke::call(this, [prev, s, copy]() { + GUIInvoke::call(prev, [prev, s, copy]() { prev->UpdateThumb(s, *copy); delete copy; });