When Typing [window=''] or [font=''] in a EditBox, it may crash, since the window or the font does not exist.
If it doesn't occur, try to delete some of the string and retype.
Is this a bug? Or we should try-catch in our client code?
The demos shipped with 0.7.0 have the same problem.
Here is the callstack information taken from the VS debugger.
Code: Select all
> CEGUIBase_d.dll!CEGUI::WindowManager::getWindow(const CEGUI::String & name={...}) Line 204 + 0xa6 bytes C++
CEGUIBase_d.dll!CEGUI::RenderedStringWidgetComponent::RenderedStringWidgetComponent(const CEGUI::String & widget_name={...}) Line 46 + 0x6a bytes C++
CEGUIBase_d.dll!CEGUI::BasicRenderedStringParser::processControlString(CEGUI::RenderedString & rs={...}, const CEGUI::String & ctrl_str={...}) Line 204 + 0x12 bytes C++
CEGUIBase_d.dll!CEGUI::BasicRenderedStringParser::parse(const CEGUI::String & input_string={...}, CEGUI::Font * initial_font=0x01ff6668, const CEGUI::ColourRect * initial_colours=0x00000000) Line 116 + 0x1a bytes C++
CEGUIBase_d.dll!CEGUI::Window::getRenderedString() Line 3478 + 0x4d bytes C++
CEGUIBase_d.dll!CEGUI::Window::bufferGeometry(const CEGUI::RenderingContext & __formal={...}) Line 1176 C++
CEGUIBase_d.dll!CEGUI::Window::drawSelf(const CEGUI::RenderingContext & ctx={...}) Line 1157 C++
CEGUIBase_d.dll!CEGUI::Window::render() Line 1140 + 0x16 bytes C++
CEGUIBase_d.dll!CEGUI::Window::render() Line 1145 + 0x19 bytes C++
CEGUIBase_d.dll!CEGUI::Window::render() Line 1145 + 0x19 bytes C++
CEGUIBase_d.dll!CEGUI::System::renderGUI() Line 417 C++
Code: Select all
/*************************************************************************
Return a pointer to the named window
*************************************************************************/
Window* WindowManager::getWindow(const String& name) const
{
WindowRegistry::const_iterator pos = d_windowRegistry.find(name);
if (pos == d_windowRegistry.end())
{
throw UnknownObjectException("WindowManager::getWindow - A Window object with the name '" + name +"' does not exist within the system");
}
return pos->second;
}