summaryrefslogtreecommitdiffstatshomepage
path: root/src/osd
diff options
context:
space:
mode:
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
commitf416607d19450d1ab05d6698210732b4f1658cc7 (patch)
treeb9a302f9be96e6b2971a53beb0fa0700980fc696 /src/osd
parentac306c3d8b8e33b12801fc8d76429919983862c7 (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.mm15
-rw-r--r--src/osd/modules/debugger/osx/memoryview.mm12
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);
+ }
}
}