What's the accurate way to deallocate CEGUI ?

For help with anything that CEGUI doesn't offer straight out-of-the-box, e.g.:
- Implementation of new features, such as new Core classes, widgets, WindowRenderers, etc. ...
- Modification of any existing features for specific purposes
- Integration of CEGUI in new engines or frameworks and writing of new plugins (Renderer, Parser, ...) or modules

Moderators: CEGUI MVP, CEGUI Team

User avatar
cippyboy
Quite a regular
Quite a regular
Posts: 51
Joined: Wed Jul 30, 2008 13:23

What's the accurate way to deallocate CEGUI ?

Postby cippyboy » Fri Nov 28, 2008 10:52

What steps must be taken in order to deallocate CEGUI entirely ? I'm having an issue when loading some XMLs and then deallocating CEGUI::System; and if I don't do that I got tons of memory leaks and I'm trying to get rid of those and figure out which ones are actually created by me :D.

User avatar
CrazyEddie
CEGUI Project Lead
Posts: 6760
Joined: Wed Jan 12, 2005 12:06
Location: England
Contact:

Postby CrazyEddie » Fri Nov 28, 2008 11:23

Hi,

it should be as simple as:

Code: Select all

delete CEGUI::System::getSingletonPtr();
delete myRendererObject;


We may have leaks in CEGUI also - please let us know of any you might find :)

CE.

User avatar
cippyboy
Quite a regular
Quite a regular
Posts: 51
Joined: Wed Jul 30, 2008 13:23

Postby cippyboy » Mon Dec 01, 2008 14:18

Unfortunately I'm still getting an access violation crash when I try to delete CEGUI::System :( so I'm wondering what I could be doing wrong. Do I first have to dealloc the widgets, schemes, layouts or fonts ? The error is not present when I'm not loading any layouts/schemes though.

EDIT : It's present on release too, I just didn't let the application finish (takes a while and I prefer stopping it instantly most of the times).
Last edited by cippyboy on Mon Dec 01, 2008 17:54, edited 1 time in total.

User avatar
scriptkid
Home away from home
Home away from home
Posts: 1178
Joined: Wed Jan 12, 2005 12:06
Location: The Hague, The Netherlands
Contact:

Postby scriptkid » Mon Dec 01, 2008 14:35

Hi,

Deleting the System starts a destroy-chain on its own, so you should be fine. Are the leaks allocated by Cegui related instances? If so, maybe you are creating Cegui objects (windows, fonts and so) manually instead of through Managers? Or do you add userdata (which are pointers) to your windows, but didn't delete those?

Just some wild guesses.

HTH.
Check out my released snake game using Cegui!

User avatar
cippyboy
Quite a regular
Quite a regular
Posts: 51
Joined: Wed Jul 30, 2008 13:23

Postby cippyboy » Mon Dec 01, 2008 18:03

I don't set user data in them, I like my to manage my own data, thank you very much :D

to load schemes I do
SchemeManager::getSingleton().loadScheme
for fonts I do
FontManager::getSingleton().createFont
and for layouts
WindowManager::getSingleton().loadWindowLayout

besides that, I do a lot of WindowManager::getSingleton().iswindowpresent/getWindow . I'm thinking it could actually be from the renderer since i haven't interacted with that part too much, and to track the bug, it could probably take me a while and currently I'm doing other tasks.

PS: What's a Cegui related instance ?

User avatar
CrazyEddie
CEGUI Project Lead
Posts: 6760
Joined: Wed Jan 12, 2005 12:06
Location: England
Contact:

Postby CrazyEddie » Mon Dec 01, 2008 19:41

cippyboy wrote:What's a Cegui related instance ?

In this context, this would refer to any object (instance) created by CEGUI.

Is there any chance of seeing a debug call stack / backtrace to enable us to see exactly where it's dying?

CE.

zuzagi
Just popping in
Just popping in
Posts: 3
Joined: Fri Mar 19, 2010 11:19
Location: Redmond, WA

Re: What's the accurate way to deallocate CEGUI ?

Postby zuzagi » Fri Mar 19, 2010 11:31

hi,
I am also having some issues with memory leaks when using CEGUI. This is the setup i am using
---- Version 0.7.1 (Build: Jan 27 2010 Static Debug Microsoft Windows MSVC++ 9.0 32 bit) ----
---- Renderer module is: CEGUI::OpenGLRenderer - Official OpenGL based 2nd generation renderer module. TextureTarget support enabled via FBO extension. ----
---- XML Parser module is: CEGUI::ExpatParser - Official expat based parser module for CEGUI ----
---- Image Codec module is: SILLYImageCodec - Official SILLY based image codec ----
---- Scripting module is: None ----

After doing some debugging using microsoft debug routines, ive narrowed the code responsible for the leaks to be:
_CrtMemCheckpoint(&s1);
CEGUI::SchemeManager::getSingleton().create("TaharezLook.scheme");
_CrtMemCheckpoint(&s2);
if(_CrtMemDifference(&s3, &s1, &s2))
{
_CrtMemDumpStatistics(&s3);
_CrtDbgBreak();
}
and the call stack is
    _heap_alloc_dbg_impl(unsigned int nSize=196, int nBlockUse=1, const char * szFileName=0x00000000, int nLine=0, int * errno_tmp=0x00278c58) Line 387
    _nh_malloc_dbg_impl(unsigned int nSize=196, int nhFlag=0, int nBlockUse=1, const char * szFileName=0x00000000, int nLine=0, int * errno_tmp=0x00278c58) Line 239 + 0x19 bytes
    _nh_malloc_dbg(unsigned int nSize=196, int nhFlag=0, int nBlockUse=1, const char * szFileName=0x00000000, int nLine=0) Line 296 + 0x1d bytes
    malloc(unsigned int nSize=196) Line 56 + 0x15 bytes C++
    operator new(unsigned int size=196) Line 59 + 0x9 bytes C++
    CEGUI::TextComponent::TextComponent() + 0x76 bytes
    CEGUI::Falagard_xmlHandler::elementTextComponentStart() + 0x95 bytes
    CEGUI::Falagard_xmlHandler::elementStart() + 0xff bytes
    CEGUI::ExpatParser::startElement() + 0x106 bytes
    _XML_ErrorString() + 0xa5f bytes
    _XML_ErrorString() + 0x2c02 bytes
    _XML_ErrorString() + 0x407b bytes
    _XML_ErrorString() + 0x37c0 bytes
    _XML_ErrorString() + 0x370a bytes
    _XML_ParseBuffer() + 0xeb bytes
    _XML_Parse() + 0x200 bytes
    CEGUI::ExpatParser::parseXMLFile() + 0x171 bytes
    CEGUI::WidgetLookManager::parseLookNFeelSpecification() + 0x17c bytes
    CEGUI::Scheme::loadLookNFeels() + 0x12a bytes
    CEGUI::Scheme::loadResources() + 0x115 bytes
    CEGUI::SchemeManager::doPostObjectAdditionAction() + 0x2b bytes
    CEGUI::NamedXMLResourceManager<CEGUI::Scheme,CEGUI::Scheme_xmlHandler>::doExistingObjectAction(const CEGUI::String object_name={...}, CEGUI::Scheme * object=0x0089c158, const CEGUI::XMLResourceExistsAction action=XREA_RETURN) Line 344 + 0x16 bytes
    CEGUI::NamedXMLResourceManager<CEGUI::Scheme,CEGUI::Scheme_xmlHandler>::create(const CEGUI::String & xml_filename={...}, const CEGUI::String & resource_group={...}, CEGUI::XMLResourceExistsAction action=XREA_RETURN) Line 216 + 0x37 bytes

the memory leaks are all 196 bytes

the way I destroy Cegui is:
CEGUI::System::destroy();
CEGUI::OpenGLRenderer::destroy(renderer);

thanks for the help

User avatar
CrazyEddie
CEGUI Project Lead
Posts: 6760
Joined: Wed Jan 12, 2005 12:06
Location: England
Contact:

Re: What's the accurate way to deallocate CEGUI ?

Postby CrazyEddie » Fri Mar 19, 2010 14:10

Hi,

Can you confirm that the CEGUI samples also leak (so that I know we have something to reproduce this issue with)? I'll try to look into it over this weekend, though my previous leak tests have not shown any issues. Do you think it could be a static-linking only issue? (Sounds far fetched to me too ;)).

CE.

zuzagi
Just popping in
Just popping in
Posts: 3
Joined: Fri Mar 19, 2010 11:19
Location: Redmond, WA

Re: What's the accurate way to deallocate CEGUI ?

Postby zuzagi » Mon Mar 22, 2010 08:32

so i tested sample demo 7
22/03/2010 00:44:43 (Std)

* -------- START OF ESSENTIAL SECTION TO BE POSTED ON THE FORUM -------- *
22/03/2010 00:44:43 (Std) ********************************************************************************
22/03/2010 00:44:43 (Std) ---- Version 0.7.1 (Build: Jan 27 2010 Static Debug Microsoft Windows MSVC++ 9.0 32 bit) ----
22/03/2010 00:44:43 (Std) ---- Renderer module is: CEGUI::OpenGLRenderer - Official OpenGL based 2nd generation renderer module. TextureTarget support enabled via FBO extension. ----
22/03/2010 00:44:43 (Std) ---- XML Parser module is: CEGUI::ExpatParser - Official expat based parser module for CEGUI ----
22/03/2010 00:44:43 (Std) ---- Image Codec module is: SILLYImageCodec - Official SILLY based image codec ----
22/03/2010 00:44:43 (Std) ---- Scripting module is: None ----
22/03/2010 00:44:43 (Std) ********************************************************************************
22/03/2010 00:44:43 (Std) * -------- END OF ESSENTIAL SECTION TO BE POSTED ON THE FORUM -------- *
22/03/2010 00:44:43 (Std) ********************************************************************************

just by adding the <crtdbg.h> and the line _CrtSetDbgFlag ( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF );
came out having memory leaks. found one that was size 196 and placed a breakpoint to see the call stack when it happens, same callstack.

The second test for sample 7:
22/03/2010 00:58:47 (Std) ********************************************************************************
22/03/2010 00:58:47 (Std) * -------- START OF ESSENTIAL SECTION TO BE POSTED ON THE FORUM -------- *
22/03/2010 00:58:47 (Std) ********************************************************************************
22/03/2010 00:58:47 (Std) ---- Version 0.7.1 (Build: Jan 27 2010 Debug Microsoft Windows MSVC++ 9.0 32 bit) ----
22/03/2010 00:58:47 (Std) ---- Renderer module is: CEGUI::OpenGLRenderer - Official OpenGL based 2nd generation renderer module. TextureTarget support enabled via FBO extension. ----
22/03/2010 00:58:47 (Std) ---- XML Parser module is: CEGUI::ExpatParser - Official expat based parser module for CEGUI ----
22/03/2010 00:58:47 (Std) ---- Image Codec module is: SILLYImageCodec - Official SILLY based image codec ----
22/03/2010 00:58:47 (Std) ---- Scripting module is: None ----
22/03/2010 00:58:47 (Std) ********************************************************************************
22/03/2010 00:58:47 (Std) * -------- END OF ESSENTIAL SECTION TO BE POSTED ON THE FORUM -------- *
22/03/2010 00:58:47 (Std) ********************************************************************************

as you can see was done using Dlls and I still get memory leaks,
Memory Leaks during Dynamic linkage
Detected memory leaks!
Dumping objects ->
    {90794} normal block at 0x05C9CFB8, 96 bytes long.
    Data: < > 00 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00
    {90793} normal block at 0x05C9CF18, 96 bytes long.
    Data: < > 00 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00
    {90785} normal block at 0x05C9CDD0, 196 bytes long.
    Data: <@ [ > 40 E7 9A 5B 00 00 00 00 CD CD CD CD 18 CF C9 05
    {90735} normal block at 0x05C9C920, 88 bytes long.
    Data: < > 00 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00
    {90734} normal block at 0x05C9C888, 88 bytes long.
    Data: < > 00 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00
    {90726} normal block at 0x05C9C740, 196 bytes long.
    Data: <@ [ > 40 E7 9A 5B 00 00 00 00 CD CD CD CD 88 C8 C9 05
    {90661} normal block at 0x05C9C290, 92 bytes long.
    Data: < > 00 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00
    {90660} normal block at 0x05C9C1F8, 92 bytes long.
    Data: < > 00 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00
    {90652} normal block at 0x05C9C0B0, 196 bytes long.
    Data: <@ [ > 40 E7 9A 5B 00 00 00 00 CD CD CD CD F8 C1 C9 05
    {90600} normal block at 0x05C9BC00, 92 bytes long.
    Data: < > 00 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00
    {90599} normal block at 0x05C9BB68, 92 bytes long.
    Data: < > 00 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00
    {90591} normal block at 0x05C9BA20, 196 bytes long.
    Data: <@ [ h > 40 E7 9A 5B 00 00 00 00 CD CD CD CD 68 BB C9 05
    {90541} normal block at 0x05C9B590, 56 bytes long.
    Data: < > 00 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00
    {90540} normal block at 0x05C9B518, 56 bytes long.
    Data: < > 00 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00
    {90532} normal block at 0x05C9B3D0, 196 bytes long.
    Data: <@ [ > 40 E7 9A 5B 00 00 00 00 CD CD CD CD 18 B5 C9 05
    {90467} normal block at 0x05C9AF58, 32 bytes long.
    Data: < > 00 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00
    {90466} normal block at 0x05C9AEF8, 32 bytes long.
    Data: < > 00 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00
    {90458} normal block at 0x05C9ADB0, 196 bytes long.
    Data: <@ [ > 40 E7 9A 5B 00 00 00 00 CD CD CD CD F8 AE C9 05
    {90406} normal block at 0x05C9A900, 92 bytes long.
    Data: < > 00 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00
    {90405} normal block at 0x05C9A868, 92 bytes long.
    Data: < > 00 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00
    {90397} normal block at 0x05C9A720, 196 bytes long.
    Data: <@ [ h > 40 E7 9A 5B 00 00 00 00 CD CD CD CD 68 A8 C9 05
    {90347} normal block at 0x05C9A258, 116 bytes long.
    Data: < > 00 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00
    {90346} normal block at 0x05C9A1A8, 116 bytes long.
    Data: < > 00 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00
    {90338} normal block at 0x05C9A060, 196 bytes long.
    Data: <@ [ > 40 E7 9A 5B 00 00 00 00 CD CD CD CD A8 A1 C9 05
    {90273} normal block at 0x05C99BE0, 40 bytes long.
    Data: < > 00 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00
    {90272} normal block at 0x05C99B78, 40 bytes long.
    Data: < > 00 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00
    {90264} normal block at 0x05C99A30, 196 bytes long.
    Data: <@ [ x > 40 E7 9A 5B 00 00 00 00 CD CD CD CD 78 9B C9 05
    {90212} normal block at 0x05C99580, 88 bytes long.
    Data: < > 00 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00
    {90211} normal block at 0x05C994E8, 88 bytes long.
    Data: < > 00 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00
    {90203} normal block at 0x05C993A0, 196 bytes long.
    Data: <@ [ > 40 E7 9A 5B 00 00 00 00 CD CD CD CD E8 94 C9 05
    {90153} normal block at 0x05DFBF08, 80 bytes long.
    Data: < > 00 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00
    {90152} normal block at 0x05DFBE78, 80 bytes long.
    Data: < > 00 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00
    {90144} normal block at 0x05DFBD30, 196 bytes long.
    Data: <@ [ x > 40 E7 9A 5B 00 00 00 00 CD CD CD CD 78 BE DF 05
    {90079} normal block at 0x05DFBB68, 48 bytes long.
    Data: < > 00 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00
    {90078} normal block at 0x05DFBAF8, 48 bytes long.
    Data: < > 00 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00
    {90070} normal block at 0x05DFB9B0, 196 bytes long.
    Data: <@ [ > 40 E7 9A 5B 00 00 00 00 CD CD CD CD F8 BA DF 05
    {90018} normal block at 0x05DFB4F8, 100 bytes long.
    Data: < > 00 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00
    {90017} normal block at 0x05DFB458, 100 bytes long.
    Data: < > 00 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00
    {90009} normal block at 0x05DFB358, 196 bytes long.
    Data: <@ [ X > 40 E7 9A 5B 00 00 00 00 CD CD CD CD 58 B4 DF 05
    {89959} normal block at 0x05DFAEA0, 96 bytes long.
    Data: < > 00 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00
    {89958} normal block at 0x05DFAE00, 96 bytes long.
    Data: < > 00 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00
    {89950} normal block at 0x05DFAD00, 196 bytes long.
    Data: <@ [ > 40 E7 9A 5B 00 00 00 00 CD CD CD CD 00 AE DF 05
    {89885} normal block at 0x05DFA458, 52 bytes long.
    Data: < > 00 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00
    {89884} normal block at 0x05DFA3E8, 52 bytes long.
    Data: < > 00 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00
    {89876} normal block at 0x05DFA828, 196 bytes long.
    Data: <@ [ > 40 E7 9A 5B 00 00 00 00 CD CD CD CD E8 A3 DF 05
    {89538} normal block at 0x05DF9F60, 64 bytes long.
    Data: < > 00 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00
    {89537} normal block at 0x05DF9EE0, 64 bytes long.
    Data: < > 00 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00
    {89526} normal block at 0x05DF9D28, 196 bytes long.
    Data: <@ [ > 40 E7 9A 5B 00 00 00 00 CD CD CD CD E0 9E DF 05
    {89468} normal block at 0x05DF9898, 60 bytes long.
    Data: < > 00 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00
    {89467} normal block at 0x05DF9820, 60 bytes long.
    Data: < > 00 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00
    {89457} normal block at 0x05DF96D8, 196 bytes long.
    Data: <@ [ > 40 E7 9A 5B 00 00 00 00 CD CD CD CD 20 98 DF 05
    {89375} normal block at 0x05DF9248, 60 bytes long.
    Data: < > 00 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00
    {89374} normal block at 0x05DF91D0, 60 bytes long.
    Data: < > 00 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00
    {89364} normal block at 0x05DF90D0, 196 bytes long.
    Data: <@ [ > 40 E7 9A 5B 00 00 00 00 CD CD CD CD D0 91 DF 05
    {89315} normal block at 0x05DF8C40, 60 bytes long.
    Data: < > 00 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00
    {89314} normal block at 0x05DF8BC8, 60 bytes long.
    Data: < > 00 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00
    {89303} normal block at 0x05DF8A20, 196 bytes long.
    Data: <@ [ > 40 E7 9A 5B 00 00 00 00 CD CD CD CD C8 8B DF 05
    {89254} normal block at 0x05DF8590, 60 bytes long.
    Data: < > 00 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00
    {89253} normal block at 0x05DF8518, 60 bytes long.
    Data: < > 00 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00
    {89243} normal block at 0x05DF8418, 196 bytes long.
    Data: <@ [ > 40 E7 9A 5B 00 00 00 00 CD CD CD CD 18 85 DF 05
    {89179} normal block at 0x05DF7F88, 60 bytes long.
    Data: < > 00 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00
    {89178} normal block at 0x05DF7F10, 60 bytes long.
    Data: < > 00 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00
    {89167} normal block at 0x05DF7DB8, 196 bytes long.
    Data: <@ [ > 40 E7 9A 5B 00 00 00 00 CD CD CD CD 10 7F DF 05
    {89118} normal block at 0x05DF7928, 60 bytes long.
    Data: < > 00 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00
    {89117} normal block at 0x05DF78B0, 60 bytes long.
    Data: < > 00 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00
    {89106} normal block at 0x05DC6950, 196 bytes long.
    Data: <@ [ x > 40 E7 9A 5B 00 00 00 00 CD CD CD CD B0 78 DF 05
    {89057} normal block at 0x05DC6740, 60 bytes long.
    Data: < > 00 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00
    {89056} normal block at 0x05DC66C8, 60 bytes long.
    Data: < > 00 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00
    {89045} normal block at 0x05DC65C8, 196 bytes long.
    Data: <@ [ f > 40 E7 9A 5B 00 00 00 00 CD CD CD CD C8 66 DC 05
    {88996} normal block at 0x05DC50E0, 60 bytes long.
    Data: < > 00 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00
    {88995} normal block at 0x05CC9DD0, 60 bytes long.
    Data: < > 00 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00
    {88984} normal block at 0x05DC60F0, 196 bytes long.
    Data: <@ [ > 40 E7 9A 5B 00 00 00 00 CD CD CD CD D0 9D CC 05
    {88906} normal block at 0x05DC5068, 60 bytes long.
    Data: < > 00 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00
    {88905} normal block at 0x05D37528, 60 bytes long.
    Data: < > 00 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00
    {88894} normal block at 0x05DF4E60, 196 bytes long.
    Data: <@ [ (u > 40 E7 9A 5B 00 00 00 00 CD CD CD CD 28 75 D3 05
    {60512} normal block at 0x05C67B00, 196 bytes long.
    Data: <@ [ > 40 E7 9A 5B 00 00 00 00 CD CD CD CD 00 00 00 00
    {53298} normal block at 0x05C4E1C0, 196 bytes long.
    Data: <@ [ > 40 E7 9A 5B 00 00 00 00 CD CD CD CD 00 00 00 00
    {47841} normal block at 0x05C45FF8, 196 bytes long.
    Data: <@ [ > 40 E7 9A 5B 00 00 00 00 CD CD CD CD 00 00 00 00
    {46629} normal block at 0x05C21E88, 196 bytes long.
    Data: <@ [ > 40 E7 9A 5B 00 00 00 00 CD CD CD CD 00 00 00 00
    {42312} normal block at 0x05C21D20, 196 bytes long.
    Data: <@ [ > 40 E7 9A 5B 00 00 00 00 CD CD CD CD 00 00 00 00
    {25473} normal block at 0x05BB5A38, 196 bytes long.
    Data: <@ [ > 40 E7 9A 5B 00 00 00 00 CD CD CD CD 00 00 00 00
    {21809} normal block at 0x05BB9E00, 196 bytes long.
    Data: <@ [ > 40 E7 9A 5B 00 00 00 00 CD CD CD CD 00 00 00 00
    {18967} normal block at 0x05BB6F78, 196 bytes long.
    Data: <@ [ > 40 E7 9A 5B 00 00 00 00 CD CD CD CD 00 00 00 00
    {17711} normal block at 0x05BB4710, 196 bytes long.
    Data: <@ [ > 40 E7 9A 5B 00 00 00 00 CD CD CD CD 00 00 00 00
    {16211} normal block at 0x05BB2D48, 196 bytes long.
    Data: <@ [ > 40 E7 9A 5B 00 00 00 00 CD CD CD CD 00 00 00 00
    {504} normal block at 0x0033B998, 204 bytes long.
    Data: < > 00 00 00 00 00 00 00 00 01 00 00 00 D2 07 19 00
    {503} normal block at 0x00339A90, 10 bytes long.
    Data: <SampleApp > 53 61 6D 70 6C 65 41 70 70 00
    cegui-sdk-0.7.1-vc9\samples\common\src\ceguisample.cpp(227) : {502} normal block at 0x00318E08, 16 bytes long.
    Data: < ] 3 @g4 > 20 B8 81 5D 00 CD CD CD 08 A7 33 00 40 67 34 00
    cegui-sdk-0.7.1-vc9\samples\common\src\ceguisample.cpp(158) : {501} normal block at 0x003386B0, 20 bytes long.
    Data: < ] > EC B9 81 5D 04 00 00 00 00 00 00 00 01 00 00 CD

This is also the report for the minesweeper sample:
Detected memory leaks!
Dumping objects ->
{78152} normal block at 0x0665E128, 196 bytes long.
Data: <x > 78 A1 B0 01 00 00 00 00 CD CD CD CD 00 00 00 00
{70938} normal block at 0x066471F8, 196 bytes long.
Data: <x > 78 A1 B0 01 00 00 00 00 CD CD CD CD 00 00 00 00
{65481} normal block at 0x06619788, 196 bytes long.
Data: <x > 78 A1 B0 01 00 00 00 00 CD CD CD CD 00 00 00 00
{64269} normal block at 0x066237D8, 196 bytes long.
Data: <x > 78 A1 B0 01 00 00 00 00 CD CD CD CD 00 00 00 00
{59952} normal block at 0x0662BB10, 196 bytes long.
Data: <x > 78 A1 B0 01 00 00 00 00 CD CD CD CD 00 00 00 00
{43113} normal block at 0x065DF4A8, 196 bytes long.
Data: <x > 78 A1 B0 01 00 00 00 00 CD CD CD CD 00 00 00 00
{39449} normal block at 0x065DF760, 196 bytes long.
Data: <x > 78 A1 B0 01 00 00 00 00 CD CD CD CD 00 00 00 00
{36607} normal block at 0x065CA050, 196 bytes long.
Data: <x > 78 A1 B0 01 00 00 00 00 CD CD CD CD 00 00 00 00
{35351} normal block at 0x065C62F0, 196 bytes long.
Data: <x > 78 A1 B0 01 00 00 00 00 CD CD CD CD 00 00 00 00
{33851} normal block at 0x065C89F0, 196 bytes long.
Data: <x > 78 A1 B0 01 00 00 00 00 CD CD CD CD 00 00 00 00
{4816} normal block at 0x003075D8, 196 bytes long.
Data: <x > 78 A1 B0 01 00 00 00 00 CD CD CD CD 00 00 00 00
{4174} normal block at 0x002D0E80, 196 bytes long.
Data: <x > 78 A1 B0 01 00 00 00 00 CD CD CD CD 00 00 00 00
{492} normal block at 0x002B7E70, 204 bytes long.
Data: < / > 00 00 00 00 00 00 00 00 01 00 00 00 EA 03 2F 00
{491} normal block at 0x00ECED70, 10 bytes long.
Data: <SampleApp > 53 61 6D 70 6C 65 41 70 70 00
d:\users\javier\desktop\cegui layout\cegui sdk\temp\cegui-sdk-0.7.1-vc9\samples\common\src\ceguisample.cpp(227) : {490} normal block at 0x00ECE8F0, 16 bytes long.
Data: < w Xt, > 8C E7 AE 01 00 CD CD CD 08 77 EC 00 58 74 2C 00
d:\users\javier\desktop\cegui layout\cegui sdk\temp\cegui-sdk-0.7.1-vc9\samples\common\src\ceguisample.cpp(158) : {489} normal block at 0x00ECF1B8, 20 bytes long.
Data: < > 88 ED AE 01 04 00 00 00 00 00 00 00 01 00 00 CD
Object dump complete.
The thread 'Win32 Thread' (0x1168) has exited with code 0 (0x0).
The thread 'Win32 Thread' (0x13cc) has exited with code 0 (0x0).

I tested all the samples most of them share the same report for the memory leaks as the mine sweeper sample. demo8 and the tree demo had a similar amount to demo7. I can send you the log files generated by the system for my project and the samples if that would provide any help.

User avatar
CrazyEddie
CEGUI Project Lead
Posts: 6760
Joined: Wed Jan 12, 2005 12:06
Location: England
Contact:

Re: What's the accurate way to deallocate CEGUI ?

Postby CrazyEddie » Tue Mar 23, 2010 11:11

I did some brief testing on this, though had a hard time getting any definite proof of leaks (note that at this stage I'm not saying they don't exist). This said, there are a couple of things I will look at as regards to the GL samples base app, I think those are related to the way in which we exit from the samples (because glutMainLoop never returns).

I will test more extensively for CEGUI itself later on this week.

CE.

zuzagi
Just popping in
Just popping in
Posts: 3
Joined: Fri Mar 19, 2010 11:19
Location: Redmond, WA

Re: What's the accurate way to deallocate CEGUI ?

Postby zuzagi » Tue Mar 23, 2010 14:44

hi,

i hope your endeavor proves to be successful. let me know if there is anything more you need from me, don't hesitate to ask, always willing to help solve issues. You should try using CodeGuard, it provides very descriptive information about your memory, it comes with Borland turbo c++. or build your own memory manager to really get information of memory allocations... just suggestions,

thanks for the tool,

zuzagi

xjack913
Just popping in
Just popping in
Posts: 5
Joined: Wed Mar 24, 2010 08:09

Re: What's the accurate way to deallocate CEGUI ?

Postby xjack913 » Fri Mar 26, 2010 09:47

Good day.
I have some problems of memory leaks when using CEGUI, too.
[OgreSDK_vc9_v1-7-0 + CEGUI-0.7.1]

[The way I create the system]
_pRenderer = &CEGUI::OgreRenderer::bootstrapSystem( GUApp::getSingleton().getOgreRenderWindow() );
...
CEGUI::WindowManager& winMgr = CEGUI::WindowManager::getSingleton();
// CEGUI root
_pBackgroundWindow = winMgr.createWindow("DefaultWindow","UI_Root");
CEGUI::System::getSingleton().setGUISheet(_pBackgroundWindow);
...

[The way I release the system]
if(_pBackgroundWindow != NULL)
{
CEGUI::WindowManager::getSingleton().destroyWindow(_pBackgroundWindow);
_pBackgroundWindow = NULL;
}
if(_pRenderer != NULL)
{
_pRenderer->destroySystem();
_pRenderer = NULL;
}

Is there anything I lost?
The Ogre Render Window is from the SceneManager.
SceneManager will destory after I destory the UIManager.
The following is the one call stack of those memory leaks.
--
Memory Leak(1017)------------------->
Memory Leak <0x5A871> bytes(172) occurance(177176)
0x0012DD20->0x005BE843()
0x0012DD20->0x005BE599()
f:\dd\vctools\crt_bld\self_x86\crt\src\dbgheap.c(390): 0x0080FC73->_heap_alloc_dbg_impl()
f:\dd\vctools\crt_bld\self_x86\crt\src\dbgheap.c(239): 0x0080FB2F->_nh_malloc_dbg_impl()
f:\dd\vctools\crt_bld\self_x86\crt\src\dbgheap.c(296): 0x0080FADC->_nh_malloc_dbg()
f:\dd\vctools\crt_bld\self_x86\crt\src\dbgmalloc.c(56): 0x0081B25B->malloc()
f:\dd\vctools\crt_bld\self_x86\crt\src\new.cpp(59): 0x007FD691->operator new()
c:\program files\microsoft visual studio 9.0\vc\include\xmemory(43): 0x00E620D9->std::_Allocate<std::_Tree_nod<std::_Tmap_traits<CEGUI::String,void (__thiscall CEGUI::BasicRenderedStringParser::*)(CEGUI::RenderedString &,CEGUI::String const &),CEGUI::String::FastLessCompare,std::allocator<std::pair<CEGUI::String con()
c:\program files\microsoft visual studio 9.0\vc\include\xmemory(145): 0x00E5B43E->std::allocator<std::_Tree_nod<std::_Tmap_traits<CEGUI::String,void (__thiscall CEGUI::BasicRenderedStringParser::*)(CEGUI::RenderedString &,CEGUI::String const &),CEGUI::String::FastLessCompare,std::allocator<std::pair<CEGUI::String con()
c:\program files\microsoft visual studio 9.0\vc\include\xtree(1409): 0x00E5B263->std::_Tree<std::_Tmap_traits<CEGUI::String,void (__thiscall CEGUI::BasicRenderedStringParser::*)(CEGUI::RenderedString &,CEGUI::String const &),CEGUI::String::FastLessCompare,std::allocator<std::pair<CEGUI::String const ,void (__thiscal()
c:\program files\microsoft visual studio 9.0\vc\include\xtree(1191): 0x00FD186F->std::_Tree<std::_Tmap_traits<CEGUI::String,void (__thiscall CEGUI::BasicRenderedStringParser::*)(CEGUI::RenderedString &,CEGUI::String const &),CEGUI::String::FastLessCompare,std::allocator<std::pair<CEGUI::String const ,void (__thiscal()
c:\program files\microsoft visual studio 9.0\vc\include\xtree(733): 0x00FD0A3C->std::_Tree<std::_Tmap_traits<CEGUI::String,void (__thiscall CEGUI::BasicRenderedStringParser::*)(CEGUI::RenderedString &,CEGUI::String const &),CEGUI::String::FastLessCompare,std::allocator<std::pair<CEGUI::String const ,void (__thiscal()
c:\program files\microsoft visual studio 9.0\vc\include\map(173): 0x00FCF9C0->std::map<CEGUI::String,void (__thiscall CEGUI::BasicRenderedStringParser::*)(CEGUI::RenderedString &,CEGUI::String const &),CEGUI::String::FastLessCompare,std::allocator<std::pair<CEGUI::String const ,void (__thiscall CEGUI::BasicRender()
c:\ogresdk_vc9_v1-7-0\cegui-0.7.1\cegui\src\ceguibasicrenderedstringparser.cpp(284): 0x00FCED3B->CEGUI::BasicRenderedStringParser::initialiseTagHandlers()
c:\ogresdk_vc9_v1-7-0\cegui-0.7.1\cegui\src\ceguibasicrenderedstringparser.cpp(97): 0x00FCDD42->CEGUI::BasicRenderedStringParser::parse()
c:\ogresdk_vc9_v1-7-0\cegui-0.7.1\cegui\src\ceguiwindow.cpp(3577): 0x010B17B1->CEGUI::Window::getRenderedString()
c:\ogresdk_vc9_v1-7-0\cegui-0.7.1\cegui\src\ceguiwindow.cpp(1221): 0x010A517D->CEGUI::Window::bufferGeometry()
c:\ogresdk_vc9_v1-7-0\cegui-0.7.1\cegui\src\ceguiwindow.cpp(1202): 0x010A508F->CEGUI::Window::drawSelf()
c:\ogresdk_vc9_v1-7-0\cegui-0.7.1\cegui\src\ceguiwindow.cpp(1185): 0x010A4F04->CEGUI::Window::render()
c:\ogresdk_vc9_v1-7-0\cegui-0.7.1\cegui\src\ceguisystem.cpp(421): 0x010875C6->CEGUI::System::renderGUI()
c:\ogresdk_vc9_v1-7-0\cegui-0.7.1\cegui\src\renderermodules\ogre\ceguiogrerenderer.cpp(456): 0x013B9667->CEGUI::OgreGUIFrameListener::frameRenderingQueued()
0x0012DD20->?getBatchInstanceIndexes@InstancedGeometry@Ogre@@MAEXABVVector3@2@AAG11@Z()
0x0012DD20->?getBatchInstanceIndexes@InstancedGeometry@Ogre@@MAEXABVVector3@2@AAG11@Z()
0x0012DD20->?getBatchInstanceIndexes@InstancedGeometry@Ogre@@MAEXABVVector3@2@AAG11@Z()
0x0012DD20->?getBatchInstanceIndexes@InstancedGeometry@Ogre@@MAEXABVVector3@2@AAG11@Z()
0x0012DD20->0x004B4EC8()
0x0012DD20->0x005DAFEC()
0x0012DD20->0x005E0568()
0x0012DD20->0x005E02CF()
--
If you need more infomations, please let me know.
Thank you very much.
by XJack Hsu

User avatar
CrazyEddie
CEGUI Project Lead
Posts: 6760
Joined: Wed Jan 12, 2005 12:06
Location: England
Contact:

Re: What's the accurate way to deallocate CEGUI ?

Postby CrazyEddie » Fri Mar 26, 2010 10:24

As I've already stated, I will be looking into this.

You guys should note that I generally do not use MSVC++ for development and that I will be using 'proper' tools such as valgrind to do these tests. Once that reports back that all is well, that will be end of it. I am aware from past experience that MSVC++ memory leak debugging can flag up memory that is not actually lost - whether this has improved in recent times, I do not know ;)

Thanks for the reports here, though. And I'll keep you posted with any progress and results I get (this will be over the weekend and.or Monday) :)

CE.

User avatar
CrazyEddie
CEGUI Project Lead
Posts: 6760
Joined: Wed Jan 12, 2005 12:06
Location: England
Contact:

Re: What's the accurate way to deallocate CEGUI ?

Postby CrazyEddie » Sat Mar 27, 2010 21:58

Ok. To update on the issue of memory leaks:

I was on the point of coming here and reporting "no leaks", however then I spotted something and realised I was testing with bidirectional text support disabled. Enabling this feature duly allowed me to reproduce a whole bunch of leaks :) These have been fixed in branches/v0-7 @ r2496.

Note that I am currently aware of some leaks in the samples themselves - and sample helper lib. As far as the samples go, the main one with issues seems to be the TreeDemo and I'm not going to be expending any time on that any time soon. The leaks in the sample helper lib are, as mentioned previously, pretty much because glut does not offer a clean shutdown option.

Anyway, using the code indicated above (or the prebuilt snapshot that will get issued tomorrow morning), should see an end to most of the leaks you guys were seeing :)

CE.

xjack913
Just popping in
Just popping in
Posts: 5
Joined: Wed Mar 24, 2010 08:09

Re: What's the accurate way to deallocate CEGUI ?

Postby xjack913 » Thu Apr 01, 2010 05:45

Thanks for kindly reply.

I downloaded the lastest version from SVN on 29 March.
But,
there still have a few memory leaks.
I wonder that I must forget to do some things to release.
I mentioned the way of creatation and release before.

The following are three of the call stacks.
Memory Leak(22)------------------->
Memory Leak <0x11CE6> bytes(168) occurance(33487)
0x0012DD20->0x00613F13()
0x0012DD20->0x00613C69()
f:\dd\vctools\crt_bld\self_x86\crt\src\dbgheap.c(390): 0x0087FC73->_heap_alloc_dbg_impl()
f:\dd\vctools\crt_bld\self_x86\crt\src\dbgheap.c(239): 0x0087FB2F->_nh_malloc_dbg_impl()
f:\dd\vctools\crt_bld\self_x86\crt\src\dbgheap.c(296): 0x0087FADC->_nh_malloc_dbg()
f:\dd\vctools\crt_bld\self_x86\crt\src\dbgmalloc.c(56): 0x0088B25B->malloc()
f:\dd\vctools\crt_bld\self_x86\crt\src\new.cpp(59): 0x0086D691->operator new()
c:\program files\microsoft visual studio 9.0\vc\include\xmemory(43): 0x0113F274->std::_Allocate<CEGUI::WindowFactory *>()
c:\program files\microsoft visual studio 9.0\vc\include\xmemory(145): 0x0113A38E->std::allocator<CEGUI::WindowFactory *>::allocate()
c:\program files\microsoft visual studio 9.0\vc\include\vector(1178): 0x01139ACD->std::vector<CEGUI::WindowFactory *,std::allocator<CEGUI::WindowFactory *> >::_Insert_n()
c:\program files\microsoft visual studio 9.0\vc\include\vector(878): 0x01139679->std::vector<CEGUI::WindowFactory *,std::allocator<CEGUI::WindowFactory *> >::insert()
c:\program files\microsoft visual studio 9.0\vc\include\vector(823): 0x01139123->std::vector<CEGUI::WindowFactory *,std::allocator<CEGUI::WindowFactory *> >::push_back()
c:\cegui_svn100329\cegui\include\ceguiwindowfactorymanager.h(498): 0x01138033->CEGUI::WindowFactoryManager::addFactory<CEGUI::TplWindowFactory<CEGUI::Titlebar> >()
c:\cegui_svn100329\cegui\src\ceguisystem.cpp(1485): 0x0112DF94->CEGUI::System::addStandardWindowFactories()
c:\cegui_svn100329\cegui\src\ceguisystem.cpp(299): 0x01128A96->CEGUI::System::System()
c:\cegui_svn100329\cegui\src\ceguisystem.cpp(1832): 0x0112FEB7->CEGUI::System::create()
c:\cegui_svn100329\cegui\src\renderermodules\ogre\ceguiogrerenderer.cpp(93): 0x01476C09->CEGUI::OgreRenderer::bootstrapSystem()
0x0012DD20->0x0060A698()
0x0012DD20->0x004D6AB9()
0x0012DD20->0x0063698D()
0x0012DD20->0x0063B8E8()
0x0012DD20->0x0063B64F()
0x0012DD20->RegisterWaitForInputIdle()
--
Memory Leak(23)------------------->
Memory Leak <0x19EF8> bytes(112) occurance(49460)
0x0012DD20->0x00613F13()
0x0012DD20->0x00613C69()
f:\dd\vctools\crt_bld\self_x86\crt\src\dbgheap.c(390): 0x0087FC73->_heap_alloc_dbg_impl()
f:\dd\vctools\crt_bld\self_x86\crt\src\dbgheap.c(239): 0x0087FB2F->_nh_malloc_dbg_impl()
f:\dd\vctools\crt_bld\self_x86\crt\src\dbgheap.c(296): 0x0087FADC->_nh_malloc_dbg()
f:\dd\vctools\crt_bld\self_x86\crt\src\dbgmalloc.c(56): 0x0088B25B->malloc()
f:\dd\vctools\crt_bld\self_x86\crt\src\new.cpp(59): 0x0086D691->operator new()
0x0012DD20->0x11B1F114()
0x0012DD20->0x11B186AE()
0x0012DD20->0x11B17DED()
0x0012DD20->0x11B17999()
0x0012DD20->0x11B173E3()
0x0012DD20->0x11B144C9()
0x0012DD20->0x11B0C628()
c:\cegui_svn100329\cegui\src\ceguiwrfactoryregisterer.cpp(52): 0x01190AB3->CEGUI::WRFactoryRegisterer::registerFactory()
c:\cegui_svn100329\cegui\src\ceguiwindowrenderermodule.cpp(61): 0x01190188->CEGUI::WindowRendererModule::registerAllFactories()
c:\cegui_svn100329\cegui\src\ceguischeme.cpp(354): 0x0110B042->CEGUI::Scheme::loadWindowRendererFactories()
c:\cegui_svn100329\cegui\src\ceguischeme.cpp(109): 0x0110917D->CEGUI::Scheme::loadResources()
c:\cegui_svn100329\cegui\src\ceguischememanager.cpp(72): 0x0111AF7B->CEGUI::SchemeManager::doPostObjectAdditionAction()
c:\cegui_svn100329\cegui\include\ceguinamedxmlresourcemanager.h(359): 0x010816E1->CEGUI::NamedXMLResourceManager<CEGUI::Scheme,CEGUI::Scheme_xmlHandler>::doExistingObjectAction()
c:\cegui_svn100329\cegui\include\ceguinamedxmlresourcemanager.h(231): 0x010801F0->CEGUI::NamedXMLResourceManager<CEGUI::Scheme,CEGUI::Scheme_xmlHandler>::create()
0x0012DD20->0x0060AC34()
0x0012DD20->0x004DA02F()
0x0012DD20->0x004E4945()
0x0012DD20->0x004E48D7()
0x0012DD20->0x004E4820()
0x0012DD20->0x004E479E()
0x0012DD20->0x00637780()
f:\dd\vctools\crt_bld\self_x86\crt\src\threadex.c(348): 0x007EDFD3->_callthreadstartex()
f:\dd\vctools\crt_bld\self_x86\crt\src\threadex.c(331): 0x007EDF69->_threadstartex()
0x0012DD20->GetModuleFileNameA()
--
Memory Leak(25)------------------->
Memory Leak <0x3623C> bytes(292) occurance(103483)
0x0012DD20->0x00613F13()
0x0012DD20->0x00613C69()
f:\dd\vctools\crt_bld\self_x86\crt\src\dbgheap.c(390): 0x0087FC73->_heap_alloc_dbg_impl()
f:\dd\vctools\crt_bld\self_x86\crt\src\dbgheap.c(239): 0x0087FB2F->_nh_malloc_dbg_impl()
f:\dd\vctools\crt_bld\self_x86\crt\src\dbgheap.c(296): 0x0087FADC->_nh_malloc_dbg()
f:\dd\vctools\crt_bld\self_x86\crt\src\dbgmalloc.c(56): 0x0088B25B->malloc()
f:\dd\vctools\crt_bld\self_x86\crt\src\new.cpp(59): 0x0086D691->operator new()
f:\dd\vctools\crt_bld\self_x86\crt\src\newaop.cpp(7): 0x0124D47E->operator new[]()
c:\cegui_svn100329\cegui\src\ceguistring.cpp(68): 0x011260D7->CEGUI::String::grow()
c:\cegui_svn100329\cegui\include\ceguistring.h(1328): 0x00EC139B->CEGUI::String::assign()
c:\cegui_svn100329\cegui\include\ceguistring.h(405): 0x00EBF20F->CEGUI::String::String()
c:\cegui_svn100329\cegui\include\ceguiproperty.h(86): 0x00ECA973->CEGUI::Property::Property()
c:\cegui_svn100329\cegui\src\ceguifontproperties.cpp(64): 0x010B91C0->CEGUI::FontProperties::NativeRes::NativeRes()
c:\cegui_svn100329\cegui\src\ceguifontproperties.cpp(224): 0x010B9036->CEGUI::Font::addFontProperties()
c:\cegui_svn100329\cegui\src\ceguifont.cpp(64): 0x010B6658->CEGUI::Font::Font()
c:\cegui_svn100329\cegui\src\ceguifreetypefont.cpp(81): 0x010BCA91->CEGUI::FreeTypeFont::FreeTypeFont()
c:\cegui_svn100329\cegui\src\ceguifont_xmlhandler.cpp(202): 0x010BBE83->CEGUI::Font_xmlHandler::createFreeTypeFont()
c:\cegui_svn100329\cegui\src\ceguifont_xmlhandler.cpp(141): 0x010BB342->CEGUI::Font_xmlHandler::elementFontStart()
c:\cegui_svn100329\cegui\src\ceguifont_xmlhandler.cpp(113): 0x010BB066->CEGUI::Font_xmlHandler::elementStart()
0x0012DD20->0x0F44C503()
0x0012DD20->0x0F450F38()
0x0012DD20->0x0F4539F2()
0x0012DD20->0x0F45587B()
0x0012DD20->0x0F454F90()
0x0012DD20->0x0F4547CA()
0x0012DD20->0x0F44EF5B()
0x0012DD20->0x0F44EDD0()
0x0012DD20->0x0F44BDD9()
c:\cegui_svn100329\cegui\src\ceguifont_xmlhandler.cpp(76): 0x010BABE7->CEGUI::Font_xmlHandler::Font_xmlHandler()
c:\cegui_svn100329\cegui\include\ceguinamedxmlresourcemanager.h(229): 0x00F4C212->CEGUI::NamedXMLResourceManager<CEGUI::Font,CEGUI::Font_xmlHandler>::create()
c:\cegui_svn100329\cegui\src\ceguischeme.cpp(234): 0x0110A1B3->CEGUI::Scheme::loadFonts()
c:\cegui_svn100329\cegui\src\ceguischeme.cpp(107): 0x0110916D->CEGUI::Scheme::loadResources()
c:\cegui_svn100329\cegui\src\ceguischememanager.cpp(72): 0x0111AF7B->CEGUI::SchemeManager::doPostObjectAdditionAction()
c:\cegui_svn100329\cegui\include\ceguinamedxmlresourcemanager.h(359): 0x010816E1->CEGUI::NamedXMLResourceManager<CEGUI::Scheme,CEGUI::Scheme_xmlHandler>::doExistingObjectAction()
c:\cegui_svn100329\cegui\include\ceguinamedxmlresourcemanager.h(231): 0x010801F0->CEGUI::NamedXMLResourceManager<CEGUI::Scheme,CEGUI::Scheme_xmlHandler>::create()
0x0012DD20->0x0060AD70()
0x0012DD20->0x004DA02F()
0x0012DD20->0x004E4945()
0x0012DD20->0x004E48D7()
0x0012DD20->0x004E4820()
0x0012DD20->0x004E479E()
0x0012DD20->0x00637780()
f:\dd\vctools\crt_bld\self_x86\crt\src\threadex.c(348): 0x007EDFD3->_callthreadstartex()
f:\dd\vctools\crt_bld\self_x86\crt\src\threadex.c(331): 0x007EDF69->_threadstartex()
0x0012DD20->GetModuleFileNameA()
--
If you need more information, please let me know.
Thank you very much.
XJ


Return to “Modifications / Integrations / Customisations”

Who is online

Users browsing this forum: No registered users and 5 guests