ddraw: Adjust reference counts of created surfaces in ddraw_set_surface_version.

Ričardas Barkauskas rbarkauskas at codeweavers.com
Tue Jun 14 08:17:28 CDT 2011


---
 dlls/ddraw/ddraw.c |   12 ++++++++++++
 1 files changed, 12 insertions(+), 0 deletions(-)

diff --git a/dlls/ddraw/ddraw.c b/dlls/ddraw/ddraw.c
index 3280f71..89b9ce4 100644
--- a/dlls/ddraw/ddraw.c
+++ b/dlls/ddraw/ddraw.c
@@ -2882,6 +2882,18 @@ static void ddraw_set_surface_version(IDirectDrawSurfaceImpl *surface, UINT vers
     TRACE("surface %p, version %u -> %u.\n", surface, surface->version, version);
 
     surface->version = version;
+    switch(version)
+    {
+        case 4:
+            IDirectDrawSurface4_AddRef(&surface->IDirectDrawSurface4_iface);
+            break;
+        case 3:
+        case 2:
+        case 1:
+            IDirectDrawSurface_AddRef(&surface->IDirectDrawSurface_iface);
+            break;
+    }
+    IDirectDrawSurface7_Release(&surface->IDirectDrawSurface7_iface);
     for (i = 0; i < MAX_COMPLEX_ATTACHED; ++i)
     {
         if (!surface->complex_array[i]) break;
-- 
1.7.5.3

------=_20110614091217_29855--





More information about the wine-patches mailing list