Small DDraw patch

Lionel Ulmer lionel.ulmer at free.fr
Sat Feb 23 13:04:25 CST 2002


Hi all,

While mucking around for another thing, I managed to crash Windows Media
Player in DDraw. This patch fixes it. 

It is released under the 'do whatever you want with it as long as you do not
start to discuss license merits' license. I suppose it is compatible with
the Wine license for most of the people on this list :-)

Changelog:
 - fix crash in the X11 HAL when setting a NULL palette to a surface

-- 
		 Lionel Ulmer - http://www.bbrox.org/
-------------- next part --------------
Index: dlls/x11drv/x11ddraw.c
===================================================================
RCS file: /home/wine/wine/dlls/x11drv/x11ddraw.c,v
retrieving revision 1.12
diff -u -r1.12 x11ddraw.c
--- dlls/x11drv/x11ddraw.c	2001/08/27 19:04:18	1.12
+++ dlls/x11drv/x11ddraw.c	2002/02/23 17:01:09
@@ -159,12 +159,14 @@
 
 static DWORD PASCAL X11DRV_DDHAL_SetPalette(LPDDHAL_SETPALETTEDATA data)
 {
-  Colormap pal = data->lpDDPalette->u1.dwReserved1;
-  if (pal) {
+  if (data->lpDDPalette && data->lpDDPalette->u1.dwReserved1) {
     if (data->lpDDSurface == X11DRV_DD_Primary) {
       FIXME("stub\n");
       /* we should probably find the ddraw window (maybe data->lpDD->lpExclusiveOwner->hWnd),
-       * and attach the palette to it */
+       * and attach the palette to it
+       *
+       * Colormap pal = data->lpDDPalette->u1.dwReserved1;
+       */
     }
   }
   data->ddRVal = DD_OK;
Index: dlls/ddraw/dsurface/hal.c
===================================================================
RCS file: /home/wine/wine/dlls/ddraw/dsurface/hal.c,v
retrieving revision 1.3
diff -u -r1.3 hal.c
--- dlls/ddraw/dsurface/hal.c	2001/09/10 23:12:16	1.3
+++ dlls/ddraw/dsurface/hal.c	2002/02/23 17:01:13
@@ -223,7 +223,7 @@
     DIB_DirectDrawSurface_set_palette(This, pal);
     data.lpDD = dd_gbl;
     data.lpDDSurface = &This->local;
-    data.lpDDPalette = &pal->global;
+    data.lpDDPalette = (pal != NULL ? &pal->global : NULL);
     data.ddRVal = 0;
     data.Attach = TRUE; /* what's this? */
     data.SetPalette = dd_gbl->lpDDCBtmp->HALDDSurface.SetPalette;


More information about the wine-patches mailing list