From: Axel Davy Date: Tue, 2 Dec 2014 23:07:26 +0000 (+0100) Subject: st/nine: Fix crash when deleting non-implicit swapchain X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=0d2c22e64844e20f9a52bffe2b934079a4121886;p=mesa.git 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 --- 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);