do not try free memmory at exit it seam like the DdDeleteDirectDrawObject doing it for us, and it does not crash any longer at exists Modified: trunk/reactos/lib/ddraw/hal/ddraw_hal.c Modified: trunk/reactos/lib/ddraw/hal/surface_hal.c _____
Modified: trunk/reactos/lib/ddraw/hal/ddraw_hal.c --- trunk/reactos/lib/ddraw/hal/ddraw_hal.c 2005-11-01 18:42:50 UTC (rev 18935) +++ trunk/reactos/lib/ddraw/hal/ddraw_hal.c 2005-11-01 18:53:37 UTC (rev 18936) @@ -315,6 +315,7 @@
DdDeleteDirectDrawObject (&This->DirectDrawGlobal);
+ /* if(This->DirectDrawGlobal.lpDDKernelCaps) HeapFree(GetProcessHeap(), 0, This->DirectDrawGlobal.lpDDKernelCaps);
@@ -344,6 +345,7 @@
if(This->DirectDrawGlobal.lpD3DGlobalDriverData) HeapFree(GetProcessHeap(), 0, (PVOID)This->DirectDrawGlobal.lpD3DGlobalDriverData); + */ }
_____
Modified: trunk/reactos/lib/ddraw/hal/surface_hal.c --- trunk/reactos/lib/ddraw/hal/surface_hal.c 2005-11-01 18:42:50 UTC (rev 18935) +++ trunk/reactos/lib/ddraw/hal/surface_hal.c 2005-11-01 18:53:37 UTC (rev 18936) @@ -80,6 +80,7 @@
This->Local.lpGbl = &This->Global; This->Local.lpSurfMore = &This->More;
+ /* FIXME do a memcopy */ This->Local.ddsCaps = *(DDSCAPS*)&This->ddsd.ddsCaps;