mirror of
https://github.com/hrydgard/ppsspp.git
synced 2026-10-01 14:58:14 +00:00
Windows/MainWindowMenu.cpp's Load/Save/Clear Symbol Map menu actions mutated g_symbolMap directly from the WinMain thread; route them through Core_RunOnCPUThread like the rest of the debugger. Windows/MainWindow.cpp's WM_USER_GET_MODULE_INFO handler read it directly too; guard with g_frameMutex. Windows/main.cpp's SortSymbols() calls turn out to already be safe as-is - both notifications that trigger them (BOOT_DONE, SYMBOL_MAP_UPDATED) are only ever fired from the CPU/NativeFrame thread - so just fix the stale comment claiming reliance on the (now removed) internal lock. With those covered, every remaining caller is either on the CPU/NativeFrame thread already or routes through Core_RunOnCPUThread/g_frameMutex, so SymbolMap's internal recursive_mutex is redundant - remove it and all ~40 lock_guard call sites. Qt's mainwindow.cpp still pokes at g_symbolMap directly and unguarded (a pre-existing issue, out of scope - Qt isn't a maintained backend), but removing the lock doesn't change its public API, so it still builds. Co-Authored-By: Claude Sonnet 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01Hqm11k99viLfbJm2MkH4BH
Just open the MSVC project file and build.