=?UTF-8?Q?J=C3=B3zef=20Kucia=20?=: wined3d: Don' t leak texture in wined3d_unordered_access_view_destroy_object().

Alexandre Julliard julliard at winehq.org
Thu Mar 2 16:09:55 CST 2017


Module: wine
Branch: master
Commit: b5b26c204f9905d8c2c41817691d1b275d6f9659
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=b5b26c204f9905d8c2c41817691d1b275d6f9659

Author: Józef Kucia <jkucia at codeweavers.com>
Date:   Thu Mar  2 09:44:29 2017 +0100

wined3d: Don't leak texture in wined3d_unordered_access_view_destroy_object().

Signed-off-by: Józef Kucia <jkucia at codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/wined3d/view.c | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)

diff --git a/dlls/wined3d/view.c b/dlls/wined3d/view.c
index a74a2ea..a8e69fc 100644
--- a/dlls/wined3d/view.c
+++ b/dlls/wined3d/view.c
@@ -673,7 +673,21 @@ ULONG CDECL wined3d_unordered_access_view_incref(struct wined3d_unordered_access
 
 static void wined3d_unordered_access_view_destroy_object(void *object)
 {
-    HeapFree(GetProcessHeap(), 0, object);
+    struct wined3d_unordered_access_view *view = object;
+
+    if (view->gl_view.name)
+    {
+        const struct wined3d_gl_info *gl_info;
+        struct wined3d_context *context;
+
+        context = context_acquire(view->resource->device, NULL, 0);
+        gl_info = context->gl_info;
+        gl_info->gl_ops.gl.p_glDeleteTextures(1, &view->gl_view.name);
+        checkGLcall("glDeleteTextures");
+        context_release(context);
+    }
+
+    HeapFree(GetProcessHeap(), 0, view);
 }
 
 ULONG CDECL wined3d_unordered_access_view_decref(struct wined3d_unordered_access_view *view)




More information about the wine-cvs mailing list