Fixed some memory leaks in taskmgr. Patch by Christoph_vW
<Christoph(a)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 */