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.lpD3DGlobalDriverData)->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);
 }