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