Am Montag, 15. August 2005 17:07 schrieb Lionel Ulmer:
> > Well, Empire Earth doesn't crash on return from Main_DirectDraw_Release,
> > but quite a bit later in its own code. It tries to call
> > Main_DirectDrawSurfaceRelease for an allready freed surface: From the
> > crash dump:
>
> Could you put the +ddraw trace somewhere on the web ? This suspiciously
> looks like a reference counting issue either in the application or in the
> Wine code.

Oh, I forgot to add that I've done a little change to the ddraw code. Empire 
Earth calls Main_DirectDraw_SetCooperativeLevel with cooplevel == 
DDSCL_SETFOCUSWINDOW and expects a successfull result. I don't think that 
this is related to the problem.

I've also modified dlls/ntdll/heap.c to allways fill freed heap areas with 
0xaaaaaaaa.

Stefan
Index: dlls/ddraw/ddraw_main.c
===================================================================
RCS file: /home/wine/wine/dlls/ddraw/ddraw_main.c,v
retrieving revision 1.8
diff -u -r1.8 ddraw_main.c
--- dlls/ddraw/ddraw_main.c	26 Jul 2005 20:10:51 -0000	1.8
+++ dlls/ddraw/ddraw_main.c	15 Aug 2005 17:18:55 -0000
@@ -1120,6 +1120,7 @@
 	return DDERR_HWNDALREADYSET;
     */
 
+    if(cooplevel == DDSCL_SETFOCUSWINDOW) return DD_OK;
     if (!(cooplevel & (DDSCL_EXCLUSIVE|DDSCL_NORMAL)))
 	return DDERR_INVALIDPARAMS;
 

Reply via email to