When having a Region with Skin Override through GUI Editor or coding with child GUI on it, and using GUI-=GuiObjs that have this region will cause the game to crash on exit.
As for error stack, it's depends on child object but most likely error at deconstructor.
Attachment with sample (press Space Bar then exit game)
(This post was last modified: 05-23-2015 05:42 PM by SamNainocard.)
RE: A Region with skin override cause crash on exit
Hello,
Thank you for providing the test case, however I can't reproduce the problem.
I've tried VS 2008,2013, DX9/DX10/32/64bit and Mac OS, and I have no crash.
I've ran the app, pressed space, and exited the app.
Can you:
1. Rebuild the project.
2. Alternatively reinstall Esenthel Engine to make sure the headers+libs are all OK (I think this shouldn't be needed but worth checking)
3. As last step, can you attach a call stack from debug mode?
RE: A Region with skin override cause crash on exit
Sorry, it doesn't seem to crash that often with just one gui, you may try this new test case a few time and it should crash on exit.
I have yet to reinstall EE but here is call stack from VS2013 DX9/32bit
Code:
Application.exe!EE::SlideBar::setButtonRect(void) C++
Application.exe!EE::SlideBar::setLengths(float,float) C++
Application.exe!EE::Region::setButtons(void) C++
Application.exe!EE::Region::virtualSize(struct EE::Vec2 const *) C++
Application.exe!EE::Region::childRectChanged(struct EE::Rect const *,struct EE::Rect const *,struct EE::GuiObj &) C++
Application.exe!EE::Region::removeChild(struct EE::GuiObj &) C++
Application.exe!EE::GuiObj::del(void) C++
Application.exe!EE::CheckBox::del(void) C++
Application.exe!EE::GuiObjChildren::del(void) C++
Application.exe!EE::Region::del(void) C++
Application.exe!EE::GuiObjChildren::del(void) C++
Application.exe!EE::Window::del(void) C++
Application.exe!EE::Window::~Window(void) C++
Application.exe!EE::Window::`vector deleting destructor'(unsigned int) C++
> Application.exe!EE::ClassFunc<EE::Window>::Del(void * elm) Line 17 C++
Application.exe!EE::_Memb::clear(void) C++
Application.exe!EE::_Memb::del(void) C++
Application.exe!EE::_Memb::~_Memb() Line 40 C++
Application.exe!EE::Memb<EE::Window>::~Memb<EE::Window>() C++
Application.exe!EE::MembConst<EE::Window>::~MembConst<EE::Window>() C++
Application.exe!EE::GuiObjs::~GuiObjs() C++
Application.exe!`dynamic atexit destructor for 'obj''() C++
Application.exe!doexit(int code, int quick, int retcaller) Line 628 C
Application.exe!exit(int code) Line 417 C
Application.exe!__tmainCRTStartup() Line 264 C