[DDRAW] Add missing dereference operators

Andrey Turkin pancha at mail.nnov.ru
Wed Oct 25 21:23:23 CDT 2006


This patch adds several missing dereference operators because
COM_INTERFACE_CAST must operate on interface pointers and not pointers
to interface pointers. Fixes Inzomia Viewer crash (wouldn't show any
pictures but at least would run)

Patch is against 0.9.23

Changelog:
  Add missing dereference operators
-------------- next part --------------
--- wine-0.9.23-orig/dlls/ddraw/device.c	2006-10-13 18:43:39.000000000 +0400
+++ wine-0.9.23/dlls/ddraw/device.c	2006-10-26 06:12:50.739253500 +0400
@@ -1684,7 +1684,7 @@ Thunk_IDirect3DDeviceImpl_2_GetCurrentVi
     hr = IDirect3DDevice3_GetCurrentViewport(ICOM_INTERFACE(This, IDirect3DDevice3),
                                             (IDirect3DViewport3 **) Direct3DViewport2);
     if(hr != D3D_OK) return hr;
-    *Direct3DViewport2 = (IDirect3DViewport2 *) COM_INTERFACE_CAST(IDirect3DViewportImpl, IDirect3DViewport3, IDirect3DViewport3, Direct3DViewport2);
+    *Direct3DViewport2 = (IDirect3DViewport2 *) COM_INTERFACE_CAST(IDirect3DViewportImpl, IDirect3DViewport3, IDirect3DViewport3, *Direct3DViewport2);
     return D3D_OK;
 }
 
@@ -1791,7 +1791,7 @@ Thunk_IDirect3DDeviceImpl_3_GetRenderTar
     hr = IDirect3DDevice7_GetRenderTarget(ICOM_INTERFACE(This, IDirect3DDevice7),
                                           (IDirectDrawSurface7 **) RenderTarget);
     if(hr != D3D_OK) return hr;
-    *RenderTarget = (IDirectDrawSurface4 *) COM_INTERFACE_CAST(IDirectDrawSurfaceImpl, IDirectDrawSurface7, IDirectDrawSurface7, RenderTarget);
+    *RenderTarget = (IDirectDrawSurface4 *) COM_INTERFACE_CAST(IDirectDrawSurfaceImpl, IDirectDrawSurface7, IDirectDrawSurface7, *RenderTarget);
     return D3D_OK;
 }
 
@@ -1805,7 +1805,7 @@ Thunk_IDirect3DDeviceImpl_2_GetRenderTar
     hr = IDirect3DDevice7_GetRenderTarget(ICOM_INTERFACE(This, IDirect3DDevice7),
                                           (IDirectDrawSurface7 **) RenderTarget);
     if(hr != D3D_OK) return hr;
-    *RenderTarget = (IDirectDrawSurface *) COM_INTERFACE_CAST(IDirectDrawSurfaceImpl, IDirectDrawSurface7, IDirectDrawSurface3, RenderTarget);
+    *RenderTarget = (IDirectDrawSurface *) COM_INTERFACE_CAST(IDirectDrawSurfaceImpl, IDirectDrawSurface7, IDirectDrawSurface3, *RenderTarget);
     return D3D_OK;
 }
 


More information about the wine-patches mailing list