all repos — mgba @ a7985c39acf250794054cee9f2501ff0261be3f6

mGBA Game Boy Advance Emulator

Qt: Fix crash when loading a game after stopping GDB server
Jeffrey Pfau jeffrey@endrift.com
Sat, 28 Feb 2015 15:28:34 -0800
commit

a7985c39acf250794054cee9f2501ff0261be3f6

parent

9b8b56d701b6aa204f67e102a07af763fb877828

3 files changed, 7 insertions(+), 2 deletions(-)

jump to
M CHANGESCHANGES

@@ -46,6 +46,7 @@ - Qt: Fix crash when adjusting settings after closing a game

- Qt: Fix crash when starting GDB stub after closing a game - Qt: Fix patch loading while a game is running - Util: Fix sockets on Windows + - Qt: Fix crash when loading a game after stopping GDB server Misc: - GBA Audio: Change internal audio sample buffer from 32-bit to 16-bit samples - GBA Memory: Simplify memory API and use fixed bus width
M src/platform/qt/GDBController.cppsrc/platform/qt/GDBController.cpp

@@ -43,14 +43,16 @@ m_gameController->setDebugger(&m_gdbStub.d);

if (m_gameController->isLoaded()) { ARMDebuggerEnter(&m_gdbStub.d, DEBUGGER_ENTER_ATTACHED, 0); } else { - connect(m_gameController, &GameController::gameStarted, [this] () { - disconnect(m_gameController); + QObject::disconnect(m_autoattach); + m_autoattach = connect(m_gameController, &GameController::gameStarted, [this] () { + QObject::disconnect(m_autoattach); ARMDebuggerEnter(&m_gdbStub.d, DEBUGGER_ENTER_ATTACHED, 0); }); } } void GDBController::detach() { + QObject::disconnect(m_autoattach); if (!isAttached()) { return; }
M src/platform/qt/GDBController.hsrc/platform/qt/GDBController.h

@@ -45,6 +45,8 @@ GameController* m_gameController;

ushort m_port; Address m_bindAddress; + + QMetaObject::Connection m_autoattach; }; }