diff options
author | AJR <ajrhacker@users.noreply.github.com> | 2020-04-20 09:52:10 -0400 |
---|---|---|
committer | AJR <ajrhacker@users.noreply.github.com> | 2020-04-20 09:52:10 -0400 |
commit | f416607d19450d1ab05d6698210732b4f1658cc7 (patch) | |
tree | b9a302f9be96e6b2971a53beb0fa0700980fc696 /src/osd | |
parent | ac306c3d8b8e33b12801fc8d76429919983862c7 (diff) |
OS X debugger: Avoid crashing when a nonexistent disassembly or memory view is selected (which may happen automatically with .cfg files)
Diffstat (limited to 'src/osd')
-rw-r--r-- | src/osd/modules/debugger/osx/disassemblyview.mm | 15 | ||||
-rw-r--r-- | src/osd/modules/debugger/osx/memoryview.mm | 12 |
2 files changed, 18 insertions, 9 deletions
diff --git a/src/osd/modules/debugger/osx/disassemblyview.mm b/src/osd/modules/debugger/osx/disassemblyview.mm index 13c76aee2a5..2e230c27e1c 100644 --- a/src/osd/modules/debugger/osx/disassemblyview.mm +++ b/src/osd/modules/debugger/osx/disassemblyview.mm @@ -125,11 +125,16 @@ - (void)selectSubviewAtIndex:(int)index { - const int selected = view->source_index(*view->source()); - if (selected != index) { - view->set_source(*view->source(index)); - if ([[self window] firstResponder] != self) - view->set_cursor_visible(false); + const int selected = [self selectedSubviewIndex]; + if (selected != index) + { + const debug_view_source *source = view->source(index); + if (source != nullptr) + { + view->set_source(*source); + if ([[self window] firstResponder] != self) + view->set_cursor_visible(false); + } } } diff --git a/src/osd/modules/debugger/osx/memoryview.mm b/src/osd/modules/debugger/osx/memoryview.mm index 8dde0e2d497..78af307e993 100644 --- a/src/osd/modules/debugger/osx/memoryview.mm +++ b/src/osd/modules/debugger/osx/memoryview.mm @@ -108,12 +108,16 @@ - (void)selectSubviewAtIndex:(int)index { - int const selected = view->source_index(*view->source()); + int const selected = [self selectedSubviewIndex]; if (selected != index) { - view->set_source(*view->source(index)); - if ([[self window] firstResponder] != self) - view->set_cursor_visible(false); + const debug_view_source *source = view->source(index); + if (source != nullptr) + { + view->set_source(*source); + if ([[self window] firstResponder] != self) + view->set_cursor_visible(false); + } } } |