Regression after ddraw surface locking patch

Paul Vriens Paul.Vriens at
Wed Mar 9 07:13:38 CST 2005


ZooTycoon 1 demo 'crashes' with:

trace:ddraw:DIB_DirectDrawSurface_Blt (0x77e3b9e8)->((nil),(nil),(nil),01000400,0x80f510)
trace:ddraw:DIB_DirectDrawSurface_Blt   flags: DDBLT_COLORFILL DDBLT_WAIT
First chance exception: page fault on read access to 0x00000294 in 32-bit code (0x17d7b350).

This is because src = NULL and we do (line 517):

     if (This->locked || ((IDirectDrawSurfaceImpl *)src)->locked) {
        WARN(" Surface is busy, returning DDERR_SURFACEBUSY\n");
        return DDERR_SURFACEBUSY;

Can I just surround this by:

if (NULL != src)

This fixes my problem. There is another potential problem around line 993.

I've attached a patch, if it's correct I will send it to wine-patches.



-------------- next part --------------
A non-text attachment was scrubbed...
Name: ddraw_dsurface_dib.diff
Type: text/x-patch
Size: 1438 bytes
Desc: not available
Url :

More information about the wine-devel mailing list