[Scummvm-git-logs] scummvm master -> 27b967866af859f32ba496f9241d6fa6e361b1a5
dreammaster
noreply at scummvm.org
Sun Sep 28 21:44:11 UTC 2025
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://api.github.com/repos/scummvm/scummvm .
Summary:
27b967866a BAGEL: MFC: Fix crash closing backpack log
Commit: 27b967866af859f32ba496f9241d6fa6e361b1a5
https://github.com/scummvm/scummvm/commit/27b967866af859f32ba496f9241d6fa6e361b1a5
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2025-09-28T14:44:04-07:00
Commit Message:
BAGEL: MFC: Fix crash closing backpack log
Changed paths:
engines/bagel/mfc/libs/event_loop.cpp
engines/bagel/mfc/libs/event_loop.h
diff --git a/engines/bagel/mfc/libs/event_loop.cpp b/engines/bagel/mfc/libs/event_loop.cpp
index 02211268edf..8a082afd2b6 100644
--- a/engines/bagel/mfc/libs/event_loop.cpp
+++ b/engines/bagel/mfc/libs/event_loop.cpp
@@ -191,8 +191,8 @@ bool EventLoop::GetMessage(MSG &msg) {
if (msg.hwnd) {
if ((msg.message == WM_KEYDOWN || msg.message == WM_KEYUP) &&
- _kbdHookProc) {
- if (_kbdHookProc(HC_ACTION, msg.wParam, msg.lParam))
+ !_kbdHookProc.empty()) {
+ if (_kbdHookProc.front()(HC_ACTION, msg.wParam, msg.lParam))
msg.message = WM_NULL;
}
} else if (msg.message != WM_QUIT) {
diff --git a/engines/bagel/mfc/libs/event_loop.h b/engines/bagel/mfc/libs/event_loop.h
index 16f8ae1382e..a58f1fb700b 100644
--- a/engines/bagel/mfc/libs/event_loop.h
+++ b/engines/bagel/mfc/libs/event_loop.h
@@ -98,7 +98,7 @@ private:
Common::Point _joystickPos = { JOYSTICK_REST_POS, JOYSTICK_REST_POS };
Common::Point _mousePos;
uint _joystickButtons = 0;
- HOOKPROC _kbdHookProc = nullptr;
+ Array<HOOKPROC> _kbdHookProc;
int _idleCtr = 0;
KeybindProc _keybindProc = nullptr;
FocusChangeProc _focusChangeProc = nullptr;
@@ -246,12 +246,12 @@ public:
MMRESULT joyReleaseCapture(unsigned int uJoyID);
HHOOK HookKeyboard(HOOKPROC proc) {
- _kbdHookProc = proc;
+ _kbdHookProc.push_back(proc);
return (HHOOK)proc;
}
void UnhookKeyboard(HHOOK hook) {
- assert(_kbdHookProc && hook == (HHOOK)_kbdHookProc);
- _kbdHookProc = nullptr;
+ assert(_kbdHookProc.contains((HOOKPROC)hook));
+ _kbdHookProc.remove((HOOKPROC)hook);
}
uintptr SetTimer(HWND hWnd, uintptr nIDEvent, unsigned int nElapse,
More information about the Scummvm-git-logs
mailing list