MyGUI Memory Leak

wisesoft

22-12-2010 10:31:28

hi there,
when I try to combine mygui with visual leak detector(VLD), VLD reports some memory leak as follows:

leak report:

---------- Block 1665 at 0x0144F530: 32 bytes ----------
Call Stack:
f:\dd\vctools\crt_bld\self_x86\crt\src\dbgmalloc.c (56): malloc
f:\dd\vctools\crt_bld\self_x86\crt\src\xmemory (43): std::_Allocate<char>
f:\dd\vctools\crt_bld\self_x86\crt\src\xmemory (151): std::allocator<char>::allocate
f:\dd\vctools\crt_bld\self_x86\crt\src\xstring (2103): std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Copy
f:\dd\vctools\crt_bld\self_x86\crt\src\xstring (2133): std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Grow
f:\dd\vctools\crt_bld\self_x86\crt\src\xstring (1084): std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign
f:\dd\vctools\crt_bld\self_x86\crt\src\xstring (1096): std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign
f:\dd\vctools\crt_bld\self_x86\crt\src\xstring (664): std::basic_string<char,std::char_traits<char>,std::allocator<char> >::basic_string<char,std::char_traits<char>,std::allocator<char> >
d:\mycode\fish\client\mygui3.0\myguiengine\include\mygui_resourceimageset.h (64): MyGUI::ResourceImageSet::getClassTypeName
d:\mycode\fish\client\mygui3.0\myguiengine\include\mygui_factorymanager.h (53): MyGUI::FactoryManager::registerFactory<MyGUI::ResourceImageSet>
d:\mycode\fish\client\mygui3.0\myguiengine\src\mygui_resourcemanager.cpp (51): MyGUI::ResourceManager::initialise
d:\mycode\fish\client\mygui3.0\myguiengine\src\mygui_gui.cpp (106): MyGUI::Gui::initialise
d:\mycode\fish\client\fishclient\sceneeditor.cpp (254): SceneEditor::InItMyGui
d:\mycode\fish\client\fishclient\sceneeditor.cpp (25): SceneEditor::OnEnter
d:\mycode\fish\client\fishclient\scene.cpp (33): GameSceneManager::Update
d:\mycode\fish\client\fishclient\fishmain.cpp (43): hgeUpdate
d:\mycode\fish\client\hge181u\src\core\system.cpp (333): HGE_Impl::System_Start
d:\mycode\fish\client\fishclient\fishmain.cpp (166): WinMain
f:\dd\vctools\crt_bld\self_x86\crt\src\crtexe.c (574): __tmainCRTStartup
f:\dd\vctools\crt_bld\self_x86\crt\src\crtexe.c (399): WinMainCRTStartup
0x7C817077 (File and line number not available): RegisterWaitForInputIdle
Data:
52 65 73 6F 75 72 63 65 49 6D 61 67 65 53 65 74 Resource ImageSet
00 CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD ........ ........


log:

18:28:11 | Core | Info | * Initialise: RenderManager | .\src\MyGUI_DirectXRenderManager.cpp | 29
18:28:11 | Core | Info | RenderManager successfully initialized | .\src\MyGUI_DirectXRenderManager.cpp | 45
18:28:11 | Core | Info | * Initialise: DataManager | .\src\MyGUI_DirectXDataManager.cpp | 71
18:28:11 | Core | Info | DataManager successfully initialized | .\src\MyGUI_DirectXDataManager.cpp | 73
18:28:11 | Core | Info | * Initialise: Gui | .\src\MyGUI_Gui.cpp | 75
18:28:11 | Core | Info | * MyGUI version 3.2.0.3965 | .\src\MyGUI_Gui.cpp | 82
18:28:11 | Core | Info | * Initialise: ResourceManager | .\src\MyGUI_ResourceManager.cpp | 48
18:28:33 | Core | Info | ResourceManager successfully initialized | .\src\MyGUI_ResourceManager.cpp | 56
18:28:33 | Core | Info | * Initialise: LayerManager | .\src\MyGUI_LayerManager.cpp | 49
18:28:33 | Core | Info | LayerManager successfully initialized | .\src\MyGUI_LayerManager.cpp | 57
18:28:33 | Core | Info | * Initialise: WidgetManager | .\src\MyGUI_WidgetManager.cpp | 67
18:28:33 | Core | Info | WidgetManager successfully initialized | .\src\MyGUI_WidgetManager.cpp | 98
18:28:33 | Core | Info | * Initialise: InputManager | .\src\MyGUI_InputManager.cpp | 58
18:28:33 | Core | Info | InputManager successfully initialized | .\src\MyGUI_InputManager.cpp | 76
18:28:33 | Core | Info | * Initialise: SubWidgetManager | .\src\MyGUI_SubWidgetManager.cpp | 50
18:28:33 | Core | Info | SubWidgetManager successfully initialized | .\src\MyGUI_SubWidgetManager.cpp | 72
18:28:33 | Core | Info | * Initialise: SkinManager | .\src\MyGUI_SkinManager.cpp | 53
18:28:33 | Core | Info | SkinManager successfully initialized | .\src\MyGUI_SkinManager.cpp | 61
18:28:33 | Core | Info | * Initialise: FontManager | .\src\MyGUI_FontManager.cpp | 48
18:28:33 | Core | Info | FontManager successfully initialized | .\src\MyGUI_FontManager.cpp | 57
18:28:33 | Core | Info | * Initialise: ControllerManager | .\src\MyGUI_ControllerManager.cpp | 46
18:28:33 | Core | Info | ControllerManager successfully initialized | .\src\MyGUI_ControllerManager.cpp | 56
18:28:33 | Core | Info | * Initialise: PointerManager | .\src\MyGUI_PointerManager.cpp | 60
18:28:33 | Core | Info | PointerManager successfully initialized | .\src\MyGUI_PointerManager.cpp | 78
18:28:33 | Core | Info | * Initialise: ClipboardManager | .\src\MyGUI_ClipboardManager.cpp | 87
18:28:33 | Core | Info | ClipboardManager successfully initialized | .\src\MyGUI_ClipboardManager.cpp | 101
18:28:33 | Core | Info | * Initialise: LayoutManager | .\src\MyGUI_LayoutManager.cpp | 45
18:28:33 | Core | Info | LayoutManager successfully initialized | .\src\MyGUI_LayoutManager.cpp | 50
18:28:33 | Core | Info | * Initialise: DynLibManager | .\src\MyGUI_DynLibManager.cpp | 41
18:28:33 | Core | Info | DynLibManager successfully initialized | .\src\MyGUI_DynLibManager.cpp | 45
18:28:33 | Core | Info | * Initialise: PluginManager | .\src\MyGUI_PluginManager.cpp | 45
18:28:33 | Core | Info | PluginManager successfully initialized | .\src\MyGUI_PluginManager.cpp | 49
18:28:33 | Core | Info | * Initialise: LanguageManager | .\src\MyGUI_LanguageManager.cpp | 45
18:28:33 | Core | Info | LanguageManager successfully initialized | .\src\MyGUI_LanguageManager.cpp | 49
18:28:33 | Core | Info | * Initialise: FactoryManager | .\src\MyGUI_FactoryManager.cpp | 40
18:28:33 | Core | Info | FactoryManager successfully initialized | .\src\MyGUI_FactoryManager.cpp | 42
18:28:33 | Core | Info | * Initialise: ToolTipManager | .\src\MyGUI_ToolTipManager.cpp | 48
18:28:33 | Core | Info | ToolTipManager successfully initialized | .\src\MyGUI_ToolTipManager.cpp | 60
18:28:33 | Core | Info | Load ini file 'core_theme.xml' | .\src\MyGUI_ResourceManager.cpp | 130
18:28:33 | Core | Info | Load ini file 'core_font.xml' | .\src\MyGUI_ResourceManager.cpp | 130
18:28:33 | Core | Info | ResourceTrueTypeFont 'font_DejaVuSans.17' using texture size 512 x 256 | .\src\MyGUI_ResourceTrueTypeFont.cpp | 206
18:28:33 | Core | Info | ResourceTrueTypeFont 'font_DejaVuSans.17' using real height 17 pixels | .\src\MyGUI_ResourceTrueTypeFont.cpp | 207
18:28:33 | Core | Info | ResourceTrueTypeFont 'font_DejaVuSans.14' using texture size 256 x 256 | .\src\MyGUI_ResourceTrueTypeFont.cpp | 206
18:28:33 | Core | Info | ResourceTrueTypeFont 'font_DejaVuSans.14' using real height 14 pixels | .\src\MyGUI_ResourceTrueTypeFont.cpp | 207
18:28:34 | Core | Info | Load ini file 'core_resource.xml' | .\src\MyGUI_ResourceManager.cpp | 130
18:28:34 | Core | Info | Load ini file 'MyGUI_SkinCommon.xml' | .\src\MyGUI_ResourceManager.cpp | 130
18:28:34 | Core | Info | Register value : 'HCenter' = 0 | d:\mycode\mygui\myguiengine\include\MyGUI_Align.h | 238
18:28:34 | Core | Info | Register value : 'VCenter' = 0 | d:\mycode\mygui\myguiengine\include\MyGUI_Align.h | 239
18:28:34 | Core | Info | Register value : 'Center' = 0 | d:\mycode\mygui\myguiengine\include\MyGUI_Align.h | 240
18:28:34 | Core | Info | Register value : 'Left' = 2 | d:\mycode\mygui\myguiengine\include\MyGUI_Align.h | 241
18:28:34 | Core | Info | Register value : 'Right' = 4 | d:\mycode\mygui\myguiengine\include\MyGUI_Align.h | 242
18:28:34 | Core | Info | Register value : 'HStretch' = 6 | d:\mycode\mygui\myguiengine\include\MyGUI_Align.h | 243
18:28:34 | Core | Info | Register value : 'Top' = 8 | d:\mycode\mygui\myguiengine\include\MyGUI_Align.h | 244
18:28:34 | Core | Info | Register value : 'Bottom' = 16 | d:\mycode\mygui\myguiengine\include\MyGUI_Align.h | 245
18:28:34 | Core | Info | Register value : 'VStretch' = 24 | d:\mycode\mygui\myguiengine\include\MyGUI_Align.h | 246
18:28:34 | Core | Info | Register value : 'Stretch' = 30 | d:\mycode\mygui\myguiengine\include\MyGUI_Align.h | 247
18:28:34 | Core | Info | Register value : 'Default' = 10 | d:\mycode\mygui\myguiengine\include\MyGUI_Align.h | 248
18:28:34 | Core | Info | Load ini file 'MyGUI_SkinBackwardCompatibility.xml' | .\src\MyGUI_ResourceManager.cpp | 130
18:28:34 | Core | Info | Load ini file 'core_skin.xml' | .\src\MyGUI_ResourceManager.cpp | 130
18:28:36 | Core | Info | Load ini file 'core_pointer.xml' | .\src\MyGUI_ResourceManager.cpp | 130
18:28:36 | Core | Info | Load ini file 'core_layer.xml' | .\src\MyGUI_ResourceManager.cpp | 130
18:28:36 | Core | Info | Load ini file 'core_settings.xml' | .\src\MyGUI_ResourceManager.cpp | 130
18:28:36 | Core | Info | Gui successfully initialized | .\src\MyGUI_Gui.cpp | 136
18:28:36 | Core | Warning | dublicate resource name 'arrow' | .\src\MyGUI_ResourceManager.cpp | 101
18:28:36 | Core | Warning | dublicate resource name 'beam' | .\src\MyGUI_ResourceManager.cpp | 101
18:28:36 | Core | Warning | dublicate resource name 'size_left' | .\src\MyGUI_ResourceManager.cpp | 101
18:28:36 | Core | Warning | dublicate resource name 'size_right' | .\src\MyGUI_ResourceManager.cpp | 101
18:28:36 | Core | Warning | dublicate resource name 'size_horz' | .\src\MyGUI_ResourceManager.cpp | 101
18:28:36 | Core | Warning | dublicate resource name 'size_vert' | .\src\MyGUI_ResourceManager.cpp | 101
18:28:36 | Core | Warning | dublicate resource name 'hand' | .\src\MyGUI_ResourceManager.cpp | 101
18:28:36 | Core | Warning | dublicate resource name 'link' | .\src\MyGUI_ResourceManager.cpp | 101
18:28:36 | Core | Warning | Texture 'HelpIcon.png' have non power of two size | .\src\MyGUI_TextureUtility.cpp | 76
18:28:51 | Core | Info | * Shutdown: Gui | .\src\MyGUI_Gui.cpp | 143
18:28:51 | Core | Info | * Shutdown: PointerManager | .\src\MyGUI_PointerManager.cpp | 85
18:28:51 | Core | Info | PointerManager successfully shutdown | .\src\MyGUI_PointerManager.cpp | 101
18:28:51 | Core | Info | * Shutdown: InputManager | .\src\MyGUI_InputManager.cpp | 83
18:28:51 | Core | Info | InputManager successfully shutdown | .\src\MyGUI_InputManager.cpp | 88
18:28:51 | Core | Info | * Shutdown: SkinManager | .\src\MyGUI_SkinManager.cpp | 68
18:28:51 | Core | Info | SkinManager successfully shutdown | .\src\MyGUI_SkinManager.cpp | 73
18:28:51 | Core | Info | * Shutdown: SubWidgetManager | .\src\MyGUI_SubWidgetManager.cpp | 79
18:28:51 | Core | Info | SubWidgetManager successfully shutdown | .\src\MyGUI_SubWidgetManager.cpp | 101
18:28:51 | Core | Info | * Shutdown: LayerManager | .\src\MyGUI_LayerManager.cpp | 64
18:28:51 | Core | Info | destroy layer 'Wallpaper' | .\src\MyGUI_LayerManager.cpp | 207
18:28:51 | Core | Info | destroy layer 'Back' | .\src\MyGUI_LayerManager.cpp | 207
18:28:51 | Core | Info | destroy layer 'Overlapped' | .\src\MyGUI_LayerManager.cpp | 207
18:28:51 | Core | Info | destroy layer 'Middle' | .\src\MyGUI_LayerManager.cpp | 207
18:28:51 | Core | Info | destroy layer 'Modal' | .\src\MyGUI_LayerManager.cpp | 207
18:28:51 | Core | Info | destroy layer 'Main' | .\src\MyGUI_LayerManager.cpp | 207
18:28:51 | Core | Info | destroy layer 'Popup' | .\src\MyGUI_LayerManager.cpp | 207
18:28:51 | Core | Info | destroy layer 'FadeMiddle' | .\src\MyGUI_LayerManager.cpp | 207
18:28:51 | Core | Info | destroy layer 'Info' | .\src\MyGUI_LayerManager.cpp | 207
18:28:51 | Core | Info | destroy layer 'ToolTip' | .\src\MyGUI_LayerManager.cpp | 207
18:28:51 | Core | Info | destroy layer 'DragAndDrop' | .\src\MyGUI_LayerManager.cpp | 207
18:28:51 | Core | Info | destroy layer 'FadeBusy' | .\src\MyGUI_LayerManager.cpp | 207
18:28:51 | Core | Info | destroy layer 'Pointer' | .\src\MyGUI_LayerManager.cpp | 207
18:28:51 | Core | Info | destroy layer 'Fade' | .\src\MyGUI_LayerManager.cpp | 207
18:28:51 | Core | Info | destroy layer 'Statistic' | .\src\MyGUI_LayerManager.cpp | 207
18:28:51 | Core | Info | LayerManager successfully shutdown | .\src\MyGUI_LayerManager.cpp | 75
18:28:51 | Core | Info | * Shutdown: FontManager | .\src\MyGUI_FontManager.cpp | 64
18:28:51 | Core | Info | FontManager successfully shutdown | .\src\MyGUI_FontManager.cpp | 71
18:28:51 | Core | Info | * Shutdown: ControllerManager | .\src\MyGUI_ControllerManager.cpp | 63
18:28:51 | Core | Info | ControllerManager successfully shutdown | .\src\MyGUI_ControllerManager.cpp | 74
18:28:51 | Core | Info | * Shutdown: ClipboardManager | .\src\MyGUI_ClipboardManager.cpp | 108
18:28:51 | Core | Info | ClipboardManager successfully shutdown | .\src\MyGUI_ClipboardManager.cpp | 110
18:28:51 | Core | Info | * Shutdown: LayoutManager | .\src\MyGUI_LayoutManager.cpp | 57
18:28:51 | Core | Info | LayoutManager successfully shutdown | .\src\MyGUI_LayoutManager.cpp | 62
18:28:51 | Core | Info | * Shutdown: PluginManager | .\src\MyGUI_PluginManager.cpp | 56
18:28:51 | Core | Info | PluginManager successfully shutdown | .\src\MyGUI_PluginManager.cpp | 61
18:28:51 | Core | Info | * Shutdown: DynLibManager | .\src\MyGUI_DynLibManager.cpp | 52
18:28:51 | Core | Info | DynLibManager successfully shutdown | .\src\MyGUI_DynLibManager.cpp | 59
18:28:51 | Core | Info | * Shutdown: LanguageManager | .\src\MyGUI_LanguageManager.cpp | 56
18:28:51 | Core | Info | LanguageManager successfully shutdown | .\src\MyGUI_LanguageManager.cpp | 60
18:28:51 | Core | Info | * Shutdown: ResourceManager | .\src\MyGUI_ResourceManager.cpp | 63
18:28:51 | Core | Info | ResourceManager successfully shutdown | .\src\MyGUI_ResourceManager.cpp | 73
18:28:51 | Core | Info | * Shutdown: FactoryManager | .\src\MyGUI_FactoryManager.cpp | 49
18:28:51 | Core | Info | FactoryManager successfully shutdown | .\src\MyGUI_FactoryManager.cpp | 51
18:28:51 | Core | Info | * Shutdown: ToolTipManager | .\src\MyGUI_ToolTipManager.cpp | 67
18:28:51 | Core | Info | ToolTipManager successfully shutdown | .\src\MyGUI_ToolTipManager.cpp | 72
18:28:51 | Core | Info | * Shutdown: WidgetManager | .\src\MyGUI_WidgetManager.cpp | 105
18:28:51 | Core | Info | WidgetManager successfully shutdown | .\src\MyGUI_WidgetManager.cpp | 114
18:28:51 | Core | Info | Gui successfully shutdown | .\src\MyGUI_Gui.cpp | 186
18:28:51 | Core | Info | * Shutdown: RenderManager | .\src\MyGUI_DirectXRenderManager.cpp | 52
18:28:51 | Core | Info | RenderManager successfully shutdown | .\src\MyGUI_DirectXRenderManager.cpp | 57
18:28:51 | Core | Info | * Shutdown: DataManager | .\src\MyGUI_DirectXDataManager.cpp | 80
18:28:51 | Core | Info | DataManager successfully shutdown | .\src\MyGUI_DirectXDataManager.cpp | 89


myGUI version : 3.0.1
I'm using this demo: demo_colour

Altren

22-12-2010 12:12:23

Was fixed in 3.0.3 long time ago. You can download it there: http://my-gui.svn.sourceforge.net/viewv ... /?view=tar

lrhnfs

14-01-2011 09:09:10

Hello!
I found one memory leak at MyGUI3.03


DataFileStream::~DataFileStream()
{
if (mFileStream != nullptr)
{
mFileStream->close();

// here
delete mFileStream;

mFileStream = nullptr;
}
}

Altren

14-01-2011 15:22:13

Thank you for reporting. We have leak detection, but usually use Ogre and this leak appears only when Ogre is not used.
Fixed.