Memory Leak Fixes: Difference between revisions
Jump to navigation
Jump to search
| Line 14: | Line 14: | ||
src\vgui2\controls\AnimationController.cpp | src\vgui2\controls\AnimationController.cpp | ||
1292a1293,1311 | 1292a1293,1311 | ||
~CPanelAnimationDictionary() | |||
{ | |||
> int v2, v1 = m_AnimationMaps.Count(); | > int v2, v1 = m_AnimationMaps.Count(); | ||
> PanelAnimationMapEntry *pCur; | > PanelAnimationMapEntry *pCur; | ||
| Line 33: | Line 35: | ||
> } | > } | ||
> } | > } | ||
m_PanelAnimationMapPool.Clear(); | |||
} | |||
==CBitmapImagePanel== | ==CBitmapImagePanel== | ||
src\vgui2\controls\BitmapImagePanel.h | src\vgui2\controls\BitmapImagePanel.h | ||
Revision as of 18:48, 13 January 2006
On this page goes fixes for memory leaks in the SDK.
bin\client.dll
CPanelMetaClassMgrImp class
src\cl_dll\panelmetaclassmgr.cpp
236a237,241
> while(m_MetaClassKeyValues.Count()>0)
> {
> m_MetaClassKeyValues[0]->deleteThis();
> }
> m_MetaClassKeyValues.RemoveAll();
src\lib\vgui_controls.lib
See Compiling vgui_controls.lib
AnimationController
src\vgui2\controls\AnimationController.cpp
1292a1293,1311
~CPanelAnimationDictionary()
{
> int v2, v1 = m_AnimationMaps.Count();
> PanelAnimationMapEntry *pCur;
> PanelAnimationMap *pMap;
> for(int x=0;x<v1;x++)
> {
> pMap = m_AnimationMaps[x].map;
> if(pMap)
> {
> v2 = pMap->entries.Count();
> pCur = &(pMap->entries[x]);
> for(int y=0;y<v2;y++)
> {
> delete [] pCur->m_pszScriptName;
> delete [] pCur->m_pszVariable;
> delete [] pCur->m_pszType;
> delete [] pCur->m_pszDefaultValue;
> }
> }
> }
m_PanelAnimationMapPool.Clear();
}
CBitmapImagePanel
src\vgui2\controls\BitmapImagePanel.h 21a22 > ~CBitmapImagePanel();
src\vgui2\controls\BitmapImagePanel.cpp
61a62,67
>CBitmapImagePanel::~CBitmapImagePanel()
>{
> delete [] m_pszImageName;
> delete [] m_pszColorName;
>}
>
DirectorySelectDialog class
src\vgui2\controls\DirectorySelectDialog.cpp
258c258,260
< int rootIndex = m_pDirTree->AddItem(new KeyValues("root", "Text", m_szCurrentDrive), -1);
---
> KeyValues *kv = new KeyValues("root", "Text", m_szCurrentDrive);
> int rootIndex = m_pDirTree->AddItem(kv, -1);
> kv->deleteThis();
294a297
m_pDirTree->AddItem(kv, parentNodeIndex);
> kv->deleteThis();
}
410a414
int itemID = m_pDirTree->AddItem(kv, selectedIndex);
> kv->deleteThis();
FileOpenDialog class
src\vgui2\controls\FileOpenDialog.cpp 506a507 int itemID = m_pFileTypeCombo->AddItem(filterName, kv); > kv->deleteThis(); if ( bActive )
ScrollBar class
src\vgui2\controls\ScrollBar.cpp 323c323 < _button[index]->SetParent((Panel *)NULL); --- > _button[index]->DeletePanel(); 351c351 < _slider->SetParent((Panel *)NULL); --- > _slider->DeletePanel();
SectionedListPanel
src\vgui2\controls\ScrollBar.cpp 1579a1580 > delete m_hEditModePanel;