Regression after ddraw surface locking patch

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


Hi,

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.

Cheers,

Paul.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: ddraw_dsurface_dib.diff
Type: text/x-patch
Size: 1438 bytes
Desc: not available
Url : http://www.winehq.org/pipermail/wine-devel/attachments/20050309/458472fb/ddraw_dsurface_dib.bin


More information about the wine-devel mailing list