Fixed some memory leaks in taskmgr. Patch by Christoph_vW <Christoph@ApiViewer.de>
authorThomas Bluemel <thomas@reactsoft.com>
Wed, 28 Sep 2005 12:26:33 +0000 (12:26 +0000)
committerThomas Bluemel <thomas@reactsoft.com>
Wed, 28 Sep 2005 12:26:33 +0000 (12:26 +0000)
svn path=/trunk/; revision=18133

reactos/subsys/system/taskmgr/graphctl.c
reactos/subsys/system/taskmgr/graphctl.h
reactos/subsys/system/taskmgr/perfpage.c

index 90c8839..aaa7c2a 100644 (file)
@@ -99,20 +99,18 @@ static void GraphCtrl_Init(TGraphCtrl* this)
     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)
 {
index 265d5b9..8379056 100644 (file)
@@ -91,6 +91,7 @@ double  GraphCtrl_AppendPoint(TGraphCtrl* this,
                               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);
index b2bea98..8b5c031 100644 (file)
@@ -115,6 +115,10 @@ PerformancePageWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
 /*     PAINTSTRUCT ps; */
 
     switch (message) {
+       case WM_DESTROY:
+               GraphCtrl_Dispose(&PerformancePageCpuUsageHistoryGraph);
+               GraphCtrl_Dispose(&PerformancePageMemUsageHistoryGraph);
+
        case WM_INITDIALOG:
 
                /*  Save the width and height */