From: Sebastian Lackner Subject: ddraw: Remove unused code for ChangeUniquenessValue. Message-Id: <54F53590.90007@fds-team.de> Date: Tue, 03 Mar 2015 05:16:16 +0100 The code is obviously wrong (arguments for InterlockedCompareExchange are swapped), and moreover is currently noop because "if (old_uniqueness_value == 0) break;" has the effect that the counter is never updated. --- dlls/ddraw/ddraw_private.h | 1 - dlls/ddraw/surface.c | 31 +------------------------------ 2 files changed, 1 insertion(+), 31 deletions(-) From 2a5b682884a426fe11e616a67128fe6b3ad7be3e Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Tue, 3 Mar 2015 05:09:56 +0100 Subject: ddraw: Remove unused code for ChangeUniquenessValue. --- dlls/ddraw/ddraw_private.h | 1 - dlls/ddraw/surface.c | 31 +------------------------------ 2 files changed, 1 insertion(+), 31 deletions(-) diff --git a/dlls/ddraw/ddraw_private.h b/dlls/ddraw/ddraw_private.h index a2eee1a..4a883b9 100644 --- a/dlls/ddraw/ddraw_private.h +++ b/dlls/ddraw/ddraw_private.h @@ -183,7 +183,6 @@ struct ddraw_surface DDSURFACEDESC2 surface_desc; /* Misc things */ - DWORD uniqueness_value; UINT mipmap_level; /* Clipper objects */ diff --git a/dlls/ddraw/surface.c b/dlls/ddraw/surface.c index 331d2bb..cbf11da 100644 --- a/dlls/ddraw/surface.c +++ b/dlls/ddraw/surface.c @@ -3886,35 +3886,10 @@ static HRESULT WINAPI ddraw_surface2_GetDDInterface(IDirectDrawSurface2 *iface, return ddraw_surface7_GetDDInterface(&surface->IDirectDrawSurface7_iface, ddraw); } -/* This seems also windows implementation specific - I don't think WineD3D needs this */ static HRESULT WINAPI ddraw_surface7_ChangeUniquenessValue(IDirectDrawSurface7 *iface) { - struct ddraw_surface *This = impl_from_IDirectDrawSurface7(iface); - volatile struct ddraw_surface* vThis = This; - TRACE("iface %p.\n", iface); - wined3d_mutex_lock(); - /* A uniqueness value of 0 is apparently special. - * This needs to be checked. - * TODO: Write tests for this code and check if the volatile, interlocked stuff is really needed - */ - while (1) { - DWORD old_uniqueness_value = vThis->uniqueness_value; - DWORD new_uniqueness_value = old_uniqueness_value+1; - - if (old_uniqueness_value == 0) break; - if (new_uniqueness_value == 0) new_uniqueness_value = 1; - - if (InterlockedCompareExchange((LONG*)&vThis->uniqueness_value, - old_uniqueness_value, - new_uniqueness_value) - == old_uniqueness_value) - break; - } - - wined3d_mutex_unlock(); - return DD_OK; } @@ -3929,13 +3904,9 @@ static HRESULT WINAPI ddraw_surface4_ChangeUniquenessValue(IDirectDrawSurface4 * static HRESULT WINAPI ddraw_surface7_GetUniquenessValue(IDirectDrawSurface7 *iface, DWORD *pValue) { - struct ddraw_surface *surface = impl_from_IDirectDrawSurface7(iface); - TRACE("iface %p, value %p.\n", iface, pValue); - wined3d_mutex_lock(); - *pValue = surface->uniqueness_value; - wined3d_mutex_unlock(); + *pValue = 0; return DD_OK; } -- 2.3.0