From 0d2c22e64844e20f9a52bffe2b934079a4121886 Mon Sep 17 00:00:00 2001 From: Axel Davy Date: Wed, 3 Dec 2014 00:07:26 +0100 Subject: [PATCH] st/nine: Fix crash when deleting non-implicit swapchain The implicit swapchains are destroyed when the device instance is destroyed. However for non-implicit swapchains, it is not the case, and the application can have kept an reference on the swapchain buffers to reuse them. Fixes problems with battle.net launcher. Cc: "10.4" Tested-by: Nick Sarnie Reviewed-by: Ilia Mirkin Reviewed-by: David Heidelberg Signed-off-by: Axel Davy --- src/gallium/state_trackers/nine/swapchain9.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gallium/state_trackers/nine/swapchain9.c b/src/gallium/state_trackers/nine/swapchain9.c index bf87aaf042e..24ff905cd14 100644 --- a/src/gallium/state_trackers/nine/swapchain9.c +++ b/src/gallium/state_trackers/nine/swapchain9.c @@ -467,7 +467,7 @@ NineSwapChain9_dtor( struct NineSwapChain9 *This ) if (This->buffers) { for (i = 0; i < This->params.BackBufferCount; i++) { - NineUnknown_Destroy(NineUnknown(This->buffers[i])); + NineUnknown_Release(NineUnknown(This->buffers[i])); ID3DPresent_DestroyD3DWindowBuffer(This->present, This->present_handles[i]); if (This->present_buffers) pipe_resource_reference(&(This->present_buffers[i]), NULL); -- 2.30.2