I have a problem with CEGUI-0.7.5: i'm creating an object by 'new' operator in window event mouseDown.
Callstack below:
Code: Select all
App.exe!GameWindow::mouseDown(const CEGUI::EventArgs & e) Line 116 C++
App.exe!CEGUI::MemberFunctionSlot<GameWindow>::operator()(const CEGUI::EventArgs & args) Line 55 + 0x14 bytes C++
CEGUIBase_d.dll!CEGUI::SubscriberSlot::operator()(const CEGUI::EventArgs & args) Line 82 + 0x17 bytes C++
CEGUIBase_d.dll!CEGUI::Event::operator()(CEGUI::EventArgs & args) Line 102 + 0x1e bytes C++
CEGUIBase_d.dll!CEGUI::EventSet::fireEvent_impl(const CEGUI::String & name, CEGUI::EventArgs & args) Line 229 C++
CEGUIBase_d.dll!CEGUI::EventSet::fireEvent(const CEGUI::String & name, CEGUI::EventArgs & args, const CEGUI::String & eventNamespace) Line 171 C++
CEGUIBase_d.dll!CEGUI::Window::onMouseButtonDown(CEGUI::MouseEventArgs & e) Line 2935 + 0x21 bytes C++
CEGUIBase_d.dll!CEGUI::GUISheet::onMouseButtonDown(CEGUI::MouseEventArgs & e) Line 72 C++
CEGUIBase_d.dll!CEGUI::System::injectMouseButtonDown(CEGUI::MouseButton button) Line 786 + 0x16 bytes C++
App.exe!PlayerInterface::mousePressed(const OIS::MouseEvent & arg, OIS::MouseButtonID id) Line 80 + 0x29 bytes C++
And after leaving this event (App.exe!GameWindow::mouseDown) object's data becomes incorrect. I have created data breakpoint on this object and it has fired.
Call stack:
Code: Select all
CEGUIBase_d.dll!std::_Iterator_base12::_Getcont() Line 162 + 0x1d bytes C++
CEGUIBase_d.dll!std::_Tree_const_iterator<std::_Tree_val<std::_Tmap_traits<unsigned int,CEGUI::RefCounted<CEGUI::BoundSlot>,std::less<unsigned int>,std::allocator<std::pair<unsigned int const ,CEGUI::RefCounted<CEGUI::BoundSlot> > >,1> > >::operator++() Line 254 + 0x8 bytes C++
CEGUIBase_d.dll!std::_Tree_iterator<std::_Tree_val<std::_Tmap_traits<unsigned int,CEGUI::RefCounted<CEGUI::BoundSlot>,std::less<unsigned int>,std::allocator<std::pair<unsigned int const ,CEGUI::RefCounted<CEGUI::BoundSlot> > >,1> > >::operator++() Line 407 C++
CEGUIBase_d.dll!CEGUI::Event::operator()(CEGUI::EventArgs & args) Line 101 + 0x8 bytes C++
CEGUIBase_d.dll!CEGUI::EventSet::fireEvent_impl(const CEGUI::String & name, CEGUI::EventArgs & args) Line 229 C++
CEGUIBase_d.dll!CEGUI::EventSet::fireEvent(const CEGUI::String & name, CEGUI::EventArgs & args, const CEGUI::String & eventNamespace) Line 171 C++
CEGUIBase_d.dll!CEGUI::Window::onMouseButtonDown(CEGUI::MouseEventArgs & e) Line 2935 + 0x21 bytes C++
CEGUIBase_d.dll!CEGUI::GUISheet::onMouseButtonDown(CEGUI::MouseEventArgs & e) Line 72 C++
CEGUIBase_d.dll!CEGUI::System::injectMouseButtonDown(CEGUI::MouseButton button) Line 786 + 0x16 bytes C++
App.exe!PlayerInterface::mousePressed(const OIS::MouseEvent & arg, OIS::MouseButtonID id)
May be i do something wrong or i must allocate memory in different way ?

