Regression after ddraw surface locking patch

Henning Gerhardt henning.gerhardt at web.de
Wed Mar 9 11:42:11 CST 2005


Hello Paul, you wrote;

>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.

I did try your patch, but it doesn't help me by the demo of Beyond
Divinity. But I discovered which patch from Oliver Stieber caused the
regression http://cvs.winehq.org/patch.py?id=16392 (and the two following
must also be reverted to get the demo of Beyond Divinity get back to work:
http://cvs.winehq.org/patch.py?id=16399 and 
http://cvs.winehq.org/patch.py?id=16406 ).

I have no idea or the programming skills to discover the source of this bug
:(

Regards

	Henning




More information about the wine-devel mailing list