=?UTF-8?Q?Stefan=20D=C3=B6singer=20?=: wined3d: Free old data after addrefing the new one.

Alexandre Julliard julliard at winehq.org
Fri Mar 14 15:39:30 CDT 2014


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

Author: Stefan Dösinger <stefan at codeweavers.com>
Date:   Fri Mar 14 17:07:44 2014 +0100

wined3d: Free old data after addrefing the new one.

---

 include/wine/wined3d.h |    7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/include/wine/wined3d.h b/include/wine/wined3d.h
index 74ff3d1..7bb37d6 100644
--- a/include/wine/wined3d.h
+++ b/include/wine/wined3d.h
@@ -2323,9 +2323,6 @@ static inline HRESULT wined3d_private_store_set_private_data(struct wined3d_priv
     if (!(d = HeapAlloc(GetProcessHeap(), 0,
             FIELD_OFFSET(struct wined3d_private_data, content.data[data_size]))))
         return E_OUTOFMEMORY;
-    old = wined3d_private_store_get_private_data(store, guid);
-    if (old)
-        wined3d_private_store_free_private_data(store, old);
 
     d->tag = *guid;
     d->flags = flags;
@@ -2334,6 +2331,10 @@ static inline HRESULT wined3d_private_store_set_private_data(struct wined3d_priv
     memcpy(d->content.data, ptr, data_size);
     if (flags & WINED3DSPD_IUNKNOWN)
         IUnknown_AddRef(d->content.object);
+
+    old = wined3d_private_store_get_private_data(store, guid);
+    if (old)
+        wined3d_private_store_free_private_data(store, old);
     list_add_tail(&store->content, &d->entry);
 
     return WINED3D_OK;




More information about the wine-cvs mailing list