From 3c4fc89e66aa571d1a31173092124d20db0cf09b Mon Sep 17 00:00:00 2001 From: Vas Crabb Date: Sat, 21 Feb 2015 22:46:20 +1100 Subject: WM_SIZE etc may be posted before CreateWindowEx returns --- src/osd/modules/debugger/win/debugviewinfo.c | 4 ++-- src/osd/modules/debugger/win/debugwininfo.c | 4 ++-- src/osd/modules/debugger/win/debugwininfo.h | 3 ++- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/osd/modules/debugger/win/debugviewinfo.c b/src/osd/modules/debugger/win/debugviewinfo.c index e474ab5ebcb..883a12dac11 100644 --- a/src/osd/modules/debugger/win/debugviewinfo.c +++ b/src/osd/modules/debugger/win/debugviewinfo.c @@ -774,10 +774,10 @@ LRESULT CALLBACK debugview_info::static_view_proc(HWND wnd, UINT message, WPARAM } debugview_info *const info = (debugview_info *)(FPTR)GetWindowLongPtr(wnd, GWLP_USERDATA); - if (!info) + if (info == NULL) return DefWindowProc(wnd, message, wparam, lparam); - assert(info->m_wnd == wnd); + assert((info->m_wnd == wnd) || (info->m_wnd == NULL)); return info->view_proc(message, wparam, lparam); } diff --git a/src/osd/modules/debugger/win/debugwininfo.c b/src/osd/modules/debugger/win/debugwininfo.c index 3c32db35d9c..f900715a015 100644 --- a/src/osd/modules/debugger/win/debugwininfo.c +++ b/src/osd/modules/debugger/win/debugwininfo.c @@ -564,10 +564,10 @@ LRESULT CALLBACK debugwin_info::static_window_proc(HWND wnd, UINT message, WPARA } debugwin_info *const info = (debugwin_info *)(FPTR)GetWindowLongPtr(wnd, GWLP_USERDATA); - if (!info) + if (info == NULL) return DefWindowProc(wnd, message, wparam, lparam); - assert(info->m_wnd == wnd); + assert((info->m_wnd == wnd) || (info->m_wnd == NULL)); return info->window_proc(message, wparam, lparam); } diff --git a/src/osd/modules/debugger/win/debugwininfo.h b/src/osd/modules/debugger/win/debugwininfo.h index 148d79a651e..9ae4ad34aca 100644 --- a/src/osd/modules/debugger/win/debugwininfo.h +++ b/src/osd/modules/debugger/win/debugwininfo.h @@ -21,7 +21,7 @@ class debugwin_info : protected debugbase_info public: template friend class simple_list; - debugwin_info(debugger_windows_interface &debugger, bool main_console, LPCSTR title, WNDPROC handler); + debugwin_info(debugger_windows_interface &debugger, bool is_main_console, LPCSTR title, WNDPROC handler); virtual ~debugwin_info(); bool is_valid() const { return m_wnd != NULL; } @@ -101,6 +101,7 @@ protected: ID_DEVICE_OPTIONS // always keep this at the end }; + bool is_main_console() const { return m_is_main_console; } HWND window() const { return m_wnd; } UINT32 minwidth() const { return m_minwidth; } UINT32 maxwidth() const { return m_maxwidth; } -- cgit v1.2.3 From 582c9e4e3776b484cb2e38397b4962d6369915bb Mon Sep 17 00:00:00 2001 From: Vas Crabb Date: Sat, 21 Feb 2015 22:53:18 +1100 Subject: Make behaviour of breakpoint control a bit more consistent with other debugger implementations --- src/osd/modules/debugger/win/disasmbasewininfo.c | 37 ++++++++++++------------ 1 file changed, 19 insertions(+), 18 deletions(-) diff --git a/src/osd/modules/debugger/win/disasmbasewininfo.c b/src/osd/modules/debugger/win/disasmbasewininfo.c index e636bec57a7..886ccc56f24 100644 --- a/src/osd/modules/debugger/win/disasmbasewininfo.c +++ b/src/osd/modules/debugger/win/disasmbasewininfo.c @@ -131,7 +131,8 @@ void disasmbasewin_info::update_menu() else ModifyMenu(menu, ID_DISABLE_BREAKPOINT, MF_BYCOMMAND, ID_DISABLE_BREAKPOINT, TEXT("Enable breakpoint at cursor\tShift+F9")); } - EnableMenuItem(menu, ID_DISABLE_BREAKPOINT, MF_BYCOMMAND | (bp != NULL ? MF_ENABLED : MF_GRAYED)); + bool const available = (bp != NULL) && (!is_main_console() || dasmview->source_is_visible_cpu()); + EnableMenuItem(menu, ID_DISABLE_BREAKPOINT, MF_BYCOMMAND | (available ? MF_ENABLED : MF_GRAYED)); } else { @@ -177,16 +178,7 @@ bool disasmbasewin_info::handle_command(WPARAM wparam, LPARAM lparam) } // if it doesn't exist, add a new one - if (dasmview->source_is_visible_cpu()) - { - astring command; - if (bpindex == -1) - command.printf("bpset 0x%X", address); - else - command.printf("bpclear 0x%X", bpindex); - debug_console_execute_command(machine(), command, 1); - } - else + if (!is_main_console()) { if (bpindex == -1) { @@ -201,6 +193,15 @@ bool disasmbasewin_info::handle_command(WPARAM wparam, LPARAM lparam) machine().debug_view().update_all(); debugger_refresh_display(machine()); } + else if (dasmview->source_is_visible_cpu()) + { + astring command; + if (bpindex == -1) + command.printf("bpset 0x%X", address); + else + command.printf("bpclear 0x%X", bpindex); + debug_console_execute_command(machine(), command, 1); + } } return true; @@ -218,19 +219,19 @@ bool disasmbasewin_info::handle_command(WPARAM wparam, LPARAM lparam) // if it doesn't exist, add a new one if (bp != NULL) { - if (dasmview->source_is_visible_cpu()) - { - astring command; - command.printf(bp->enabled() ? "bpdisable 0x%X" : "bpenable 0x%X", (UINT32)bp->index()); - debug_console_execute_command(machine(), command, 1); - } - else + if (!is_main_console()) { debug->breakpoint_enable(bp->index(), !bp->enabled()); debug_console_printf(machine(), "Breakpoint %X %s\n", (UINT32)bp->index(), bp->enabled() ? "enabled" : "disabled"); machine().debug_view().update_all(); debugger_refresh_display(machine()); } + else if (dasmview->source_is_visible_cpu()) + { + astring command; + command.printf(bp->enabled() ? "bpdisable 0x%X" : "bpenable 0x%X", (UINT32)bp->index()); + debug_console_execute_command(machine(), command, 1); + } } } return true; -- cgit v1.2.3