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;