Free Hal memory  that have been alloc at exist
Modified: trunk/reactos/lib/ddraw/hal/ddraw_hal.c
  _____
Modified: trunk/reactos/lib/ddraw/hal/ddraw_hal.c
--- trunk/reactos/lib/ddraw/hal/ddraw_hal.c     2005-10-30 23:48:30 UTC
(rev 18902)
+++ trunk/reactos/lib/ddraw/hal/ddraw_hal.c     2005-10-30 23:54:05 UTC
(rev 18903)
@@ -24,9 +24,14 @@
        /* alloc all the space */
-       This->DirectDrawGlobal.lpDDCBtmp =
(LPDDHAL_CALLBACKS)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY,
sizeof(DDHAL_CALLBACKS));
-       This->DirectDrawGlobal.lpD3DHALCallbacks =
(ULONG_PTR)HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,
sizeof(D3DHAL_CALLBACKS));
-       This->DirectDrawGlobal.lpD3DGlobalDriverData =
(ULONG_PTR)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY,
sizeof(D3DHAL_GLOBALDRIVERDATA));
+       This->DirectDrawGlobal.lpDDCBtmp =
(LPDDHAL_CALLBACKS)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY,
+
sizeof(DDHAL_CALLBACKS));
+
+       This->DirectDrawGlobal.lpD3DHALCallbacks =
(ULONG_PTR)HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,
+
sizeof(D3DHAL_CALLBACKS));
+
+       This->DirectDrawGlobal.lpD3DGlobalDriverData =
(ULONG_PTR)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY,
+
sizeof(D3DHAL_GLOBALDRIVERDATA));
        /* Fill in some info */
        This->HalInfo.lpD3DGlobalDriverData =
This->DirectDrawGlobal.lpD3DGlobalDriverData;
@@ -53,10 +58,15 @@
                return DD_FALSE;
        }
-       This->HalInfo.vmiData.pvmList = HeapAlloc(GetProcessHeap(), 0,
sizeof(VIDMEM) * This->HalInfo.vmiData.dwNumHeaps);
-       This->DirectDrawGlobal.lpdwFourCC = HeapAlloc(GetProcessHeap(),
0, sizeof(DWORD) * This->HalInfo.ddCaps.dwNumFourCCCodes);
-
((LPD3DHAL_GLOBALDRIVERDATA)This->DirectDrawGlobal.lpD3DGlobalDriverData
)->lpTextureFormats = HeapAlloc(GetProcessHeap(), 0,
sizeof(DDSURFACEDESC) *
((LPD3DHAL_GLOBALDRIVERDATA)This->DirectDrawGlobal.lpD3DGlobalDriverData
)->dwNumTextureFormats);
+       This->HalInfo.vmiData.pvmList = HeapAlloc(GetProcessHeap(),
HEAP_ZERO_MEMORY,
+                                                     sizeof(VIDMEM) *
This->HalInfo.vmiData.dwNumHeaps);
+       This->DirectDrawGlobal.lpdwFourCC = HeapAlloc(GetProcessHeap(),
HEAP_ZERO_MEMORY,
+                                                         sizeof(DWORD)
* This->HalInfo.ddCaps.dwNumFourCCCodes);
+
((LPD3DHAL_GLOBALDRIVERDATA)This->DirectDrawGlobal.lpD3DGlobalDriverData
)->lpTextureFormats =
+                HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY,
sizeof(DDSURFACEDESC) *
+
((LPD3DHAL_GLOBALDRIVERDATA)This->DirectDrawGlobal.lpD3DGlobalDriverData
)->dwNumTextureFormats);
+
        if(!DdQueryDirectDrawObject (
                &This->DirectDrawGlobal,
                &This->HalInfo,
@@ -134,7 +144,8 @@
        This->HalInfo.GetDriverInfo( &DriverInfo);*/
        /* Get the D3DCallbacks2 */
-       This->DirectDrawGlobal.lpD3DHALCallbacks2 =
(ULONG_PTR)HeapAlloc(GetProcessHeap(), 0, sizeof(D3DHAL_CALLBACKS2));
+       This->DirectDrawGlobal.lpD3DHALCallbacks2 =
(ULONG_PTR)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY,
+
sizeof(D3DHAL_CALLBACKS2));
        DriverInfo.guidInfo = GUID_D3DCallbacks2;
        DriverInfo.lpvData =
(PVOID)This->DirectDrawGlobal.lpD3DHALCallbacks2;
        DriverInfo.dwExpectedSize = sizeof(D3DHAL_CALLBACKS2);
@@ -142,7 +153,8 @@
        /* Get the D3DCallbacks3 */
-    This->DirectDrawGlobal.lpD3DHALCallbacks =
(ULONG_PTR)HeapAlloc(GetProcessHeap(), 0, sizeof(D3DHAL_CALLBACKS3));
+    This->DirectDrawGlobal.lpD3DHALCallbacks =
(ULONG_PTR)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY,
+
sizeof(D3DHAL_CALLBACKS3));
        DriverInfo.guidInfo = GUID_D3DCallbacks3;
        DriverInfo.lpvData =
(PVOID)This->DirectDrawGlobal.lpD3DHALCallbacks;
        DriverInfo.dwExpectedSize = sizeof(D3DHAL_CALLBACKS3);
@@ -159,7 +171,8 @@
        /* Get the D3DExtendedCaps  */
-       This->DirectDrawGlobal.lpD3DExtendedCaps =
(ULONG_PTR)HeapAlloc(GetProcessHeap(), 0,
sizeof(D3DHAL_D3DEXTENDEDCAPS));
+       This->DirectDrawGlobal.lpD3DExtendedCaps =
(ULONG_PTR)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY,
+
sizeof(D3DHAL_D3DEXTENDEDCAPS));
        DriverInfo.guidInfo = GUID_D3DExtendedCaps;
        DriverInfo.lpvData = (PVOID)
This->DirectDrawGlobal.lpD3DExtendedCaps;
        DriverInfo.dwExpectedSize = sizeof(D3DHAL_D3DEXTENDEDCAPS);
@@ -191,7 +204,8 @@
        /* Get the KernelCaps  */
-       This->DirectDrawGlobal.lpDDKernelCaps =
(LPDDKERNELCAPS)HeapAlloc(GetProcessHeap(), 0,
sizeof(DDHAL_DDKERNELCALLBACKS));
+       This->DirectDrawGlobal.lpDDKernelCaps =
(LPDDKERNELCAPS)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY,
+
sizeof(DDHAL_DDKERNELCALLBACKS));
        DriverInfo.guidInfo = GUID_KernelCaps;
        DriverInfo.lpvData = (PVOID)
This->DirectDrawGlobal.lpDDKernelCaps;
        DriverInfo.dwExpectedSize = sizeof(DDHAL_DDKERNELCALLBACKS);
@@ -222,7 +236,8 @@
     /* Get the NonLocalVidMemCaps  */
-    This->DirectDrawGlobal.lpddNLVCaps =
(LPDDNONLOCALVIDMEMCAPS)HeapAlloc(GetProcessHeap(), 0,
sizeof(DDNONLOCALVIDMEMCAPS));
+       This->DirectDrawGlobal.lpddNLVCaps =
(LPDDNONLOCALVIDMEMCAPS)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY,
+
sizeof(DDNONLOCALVIDMEMCAPS));
        DriverInfo.guidInfo = GUID_NonLocalVidMemCaps;
        DriverInfo.lpvData = (PVOID)This->DirectDrawGlobal.lpddNLVCaps;
        DriverInfo.dwExpectedSize = sizeof(DDNONLOCALVIDMEMCAPS);
@@ -261,7 +276,8 @@
        /* Get the VideoPortCaps  */
-    This->DirectDrawGlobal.lpDDVideoPortCaps =
(LPDDVIDEOPORTCAPS)HeapAlloc(GetProcessHeap(), 0,
sizeof(DDVIDEOPORTCAPS));
+       This->DirectDrawGlobal.lpDDVideoPortCaps =
(LPDDVIDEOPORTCAPS)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY,
+
sizeof(DDVIDEOPORTCAPS));
        DriverInfo.guidInfo = GUID_VideoPortCaps;
        DriverInfo.lpvData =
(PVOID)This->DirectDrawGlobal.lpDDVideoPortCaps;
        DriverInfo.dwExpectedSize = sizeof(DDVIDEOPORTCAPS);
@@ -269,7 +285,8 @@
        /* Get the ZPixelFormats */
-       This->DirectDrawGlobal.lpZPixelFormats =
HeapAlloc(GetProcessHeap(), 0, sizeof(DDPIXELFORMAT) *
This->DirectDrawGlobal.dwNumZPixelFormats);
+       This->DirectDrawGlobal.lpZPixelFormats =
HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY,
+
sizeof(DDPIXELFORMAT) * This->DirectDrawGlobal.dwNumZPixelFormats);
        DriverInfo.guidInfo = GUID_ZPixelFormats;
        DriverInfo.lpvData =
(PVOID)This->DirectDrawGlobal.lpZPixelFormats;
        DriverInfo.dwExpectedSize = sizeof(DDPIXELFORMAT);
@@ -318,19 +335,33 @@
        DdDeleteDirectDrawObject (&This->DirectDrawGlobal);
-       if(This->HalInfo.vmiData.pvmList)
-               HeapFree(GetProcessHeap(), 0,
This->HalInfo.vmiData.pvmList);
+       if(This->DirectDrawGlobal.lpDDKernelCaps)
+               HeapFree(GetProcessHeap(), 0,
This->DirectDrawGlobal.lpDDKernelCaps);
+
+       if(This->DirectDrawGlobal.lpddNLVCaps)
+               HeapFree(GetProcessHeap(), 0,
This->DirectDrawGlobal.lpddNLVCaps);
+
+       if(This->DirectDrawGlobal.lpDDVideoPortCaps)
+               HeapFree(GetProcessHeap(), 0,
This->DirectDrawGlobal.lpDDVideoPortCaps);
+
        if(This->DirectDrawGlobal.lpdwFourCC)
                HeapFree(GetProcessHeap(), 0,
This->DirectDrawGlobal.lpdwFourCC);
+
        if(This->DirectDrawGlobal.lpZPixelFormats)
                HeapFree(GetProcessHeap(), 0,
This->DirectDrawGlobal.lpZPixelFormats);
+
+       if(This->HalInfo.vmiData.pvmList)
+               HeapFree(GetProcessHeap(), 0,
This->HalInfo.vmiData.pvmList);
+
if(((LPD3DHAL_GLOBALDRIVERDATA)This->DirectDrawGlobal.lpD3DGlobalDriverD
ata)->lpTextureFormats)
                HeapFree(GetProcessHeap(), 0,
((LPD3DHAL_GLOBALDRIVERDATA)This->DirectDrawGlobal.lpD3DGlobalDriverData
)->lpTextureFormats);
        if(This->DirectDrawGlobal.lpDDCBtmp)
                HeapFree(GetProcessHeap(), 0,
This->DirectDrawGlobal.lpDDCBtmp);
+
        if(This->DirectDrawGlobal.lpD3DHALCallbacks)
                HeapFree(GetProcessHeap(), 0,
(PVOID)This->DirectDrawGlobal.lpD3DHALCallbacks);
+
        if(This->DirectDrawGlobal.lpD3DGlobalDriverData)
                HeapFree(GetProcessHeap(), 0,
(PVOID)This->DirectDrawGlobal.lpD3DGlobalDriverData);
 }