Fixed some memory leaks in taskmgr. Patch by Christoph_vW <Christoph@ApiViewer.de>
Modified: trunk/reactos/subsys/system/taskmgr/graphctl.c
Modified: trunk/reactos/subsys/system/taskmgr/graphctl.h
Modified: trunk/reactos/subsys/system/taskmgr/perfpage.c

Modified: trunk/reactos/subsys/system/taskmgr/graphctl.c
--- trunk/reactos/subsys/system/taskmgr/graphctl.c	2005-09-27 23:37:05 UTC (rev 18132)
+++ trunk/reactos/subsys/system/taskmgr/graphctl.c	2005-09-28 12:26:33 UTC (rev 18133)
@@ -99,20 +99,18 @@
     this->m_bitmapOldPlot = NULL;
 }
 
-#if 0
-TGraphCtrl::~TGraphCtrl()
+void GraphCtrl_Dispose(TGraphCtrl* this)
 {
     /*  just to be picky restore the bitmaps for the two memory dc's */
     /*  (these dc's are being destroyed so there shouldn't be any leaks) */
-    if (m_bitmapOldGrid != NULL) SelectObject(m_dcGrid, m_bitmapOldGrid);
-    if (m_bitmapOldPlot != NULL) SelectObject(m_dcPlot, m_bitmapOldPlot);
-    if (m_bitmapGrid    != NULL) DeleteObject(m_bitmapGrid);
-    if (m_bitmapPlot    != NULL) DeleteObject(m_bitmapPlot);
-    if (m_dcGrid        != NULL) DeleteDC(m_dcGrid);
-    if (m_dcPlot        != NULL) DeleteDC(m_dcPlot);
-    if (m_brushBack     != NULL) DeleteObject(m_brushBack);
+    if (this->m_bitmapOldGrid != NULL) SelectObject(this->m_dcGrid, this->m_bitmapOldGrid);
+    if (this->m_bitmapOldPlot != NULL) SelectObject(this->m_dcPlot, this->m_bitmapOldPlot);
+    if (this->m_bitmapGrid    != NULL) DeleteObject(this->m_bitmapGrid);
+    if (this->m_bitmapPlot    != NULL) DeleteObject(this->m_bitmapPlot);
+    if (this->m_dcGrid        != NULL) DeleteDC(this->m_dcGrid);
+    if (this->m_dcPlot        != NULL) DeleteDC(this->m_dcPlot);
+    if (this->m_brushBack     != NULL) DeleteObject(this->m_brushBack);
 }
-#endif
 
 BOOL GraphCtrl_Create(TGraphCtrl* this, HWND hWnd, HWND hParentWnd, UINT nID)
 {

Modified: trunk/reactos/subsys/system/taskmgr/graphctl.h
--- trunk/reactos/subsys/system/taskmgr/graphctl.h	2005-09-27 23:37:05 UTC (rev 18132)
+++ trunk/reactos/subsys/system/taskmgr/graphctl.h	2005-09-28 12:26:33 UTC (rev 18133)
@@ -91,6 +91,7 @@
                               double dNewPoint2, double dNewPoint3);
 BOOL    GraphCtrl_Create(TGraphCtrl* this, HWND hWnd, HWND hParentWnd,
 UINT nID);
+void    GraphCtrl_Dispose(TGraphCtrl* this);
 void    GraphCtrl_DrawPoint(TGraphCtrl* this);
 void    GraphCtrl_InvalidateCtrl(TGraphCtrl* this);
 void    GraphCtrl_Paint(TGraphCtrl* this, HWND hWnd, HDC dc);

Modified: trunk/reactos/subsys/system/taskmgr/perfpage.c
--- trunk/reactos/subsys/system/taskmgr/perfpage.c	2005-09-27 23:37:05 UTC (rev 18132)
+++ trunk/reactos/subsys/system/taskmgr/perfpage.c	2005-09-28 12:26:33 UTC (rev 18133)
@@ -115,6 +115,10 @@
 /*     PAINTSTRUCT ps; */
 
     switch (message) {
+	case WM_DESTROY:
+		GraphCtrl_Dispose(&PerformancePageCpuUsageHistoryGraph);
+		GraphCtrl_Dispose(&PerformancePageMemUsageHistoryGraph);
+
 	case WM_INITDIALOG:
 
 		/*  Save the width and height */