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 */