This issue tracker is now in read-only mode. We migrated all our old bug reports to our bitbucket issue tracker
Please use our new issue tracker to report bugs. You can easily find all mantis tickets on our new issue tracker by selecting the appropriate bitbucket repo (CEGUI/CEED/Silly) and searching for the mantis ticket ID number.

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0000423CEGUICore library (CEGUIBase)public2011-02-01 01:492011-02-12 17:39
Assigned ToCrazyEddie 
PlatformOSOS Version
Product Version0.7.5 
Target VersionFixed in Version 
Summary0000423: Exception during System::destroy prevents proper cleanup of cegui
Description1) System::destroy() locks the window manager to prevent creation of windows during destruction.
2) System::destroy() then has the window manager delete all windows.
3) The window manager starts iterating its list of windows and eventually destroys the default tooltip.
4) The window manager then attempts to delete the next window after the default tooltip.
5) In Window::destroy the window attempts to retrieve the tooltip window.
5) System::getDefaultTooltip then attempts to create a new tooltip.
6) WindowManager::createWindow throws an exception because the window is locked.

CEGUI is now in an inconsistent state because parts of it have been destroyed properly, and other parts will not be properly destroyed.
Additional InformationI modified getDefaultTooltip locally so that it doesn't create the tooltip if the window manager is currently locked. This fixed the problem, but I'm not sure if thats the best way to fix the problem.

// "Fixed" version
Tooltip* System::getDefaultTooltip(void) const
    if (!WindowManager::getSingleton().isLocked() && (!d_defaultTooltip && !d_defaultTooltipType.empty()))

    return d_defaultTooltip;
TagsNo tags attached.
Attached Files

- Relationships

-  Notes
CrazyEddie (administrator)
2011-02-06 17:43

I couldn't reproduce this immediately - I guess it depends on the order of things and such. However, reading the code, I agree it's incorrect. I think the suggested fix is pretty much the right thing to do.

CrazyEddie (administrator)
2011-02-12 17:39

This is fixed in the v0-7 branch of mercurial: http://crayzedsgui.hg.sourceforge.net/hgweb/crayzedsgui/cegui_mk2/rev/356355ceec50 [^]

Thanks again for the report ;)

- Issue History
Date Modified Username Field Change
2011-02-01 01:49 fedyakin New Issue
2011-02-06 17:40 CrazyEddie Status new => assigned
2011-02-06 17:40 CrazyEddie Assigned To => CrazyEddie
2011-02-06 17:43 CrazyEddie Note Added: 0000523
2011-02-06 17:43 CrazyEddie Status assigned => confirmed
2011-02-12 17:39 CrazyEddie Note Added: 0000534
2011-02-12 17:39 CrazyEddie Status confirmed => resolved
2011-02-12 17:39 CrazyEddie Resolution open => fixed
Get Crazy Eddies GUI System at SourceForge.net. Fast, secure and Free Open Source software downloads

Copyright © 2000 - 2012 MantisBT Group
Powered by Mantis Bugtracker