From c848949bf19ed8bd74da1f54428d43a469b58dca Mon Sep 17 00:00:00 2001 From: Rene Gollent Date: Thu, 19 Sep 2013 17:43:36 +0200 Subject: [PATCH] Debugger: Fix crash in Inspector. - If a selection was active, and the hex mode was switched to not display, a divide by zero crash would occur. Spotted by Olivier Coursiere. --- .../user_interface/gui/inspector_window/MemoryView.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/apps/debugger/user_interface/gui/inspector_window/MemoryView.cpp b/src/apps/debugger/user_interface/gui/inspector_window/MemoryView.cpp index 8aaec0a1ff..ed8851b977 100644 --- a/src/apps/debugger/user_interface/gui/inspector_window/MemoryView.cpp +++ b/src/apps/debugger/user_interface/gui/inspector_window/MemoryView.cpp @@ -683,6 +683,9 @@ BPoint MemoryView::_GetPointForOffset(int32 offset) const { BPoint point; + if (fHexMode == HexModeNone) + return point; + int32 bytesPerLine = fHexBlocksPerLine * _GetHexDigitsPerBlock() / 2; int32 line = offset / bytesPerLine; int32 lineOffset = offset % bytesPerLine; @@ -742,6 +745,9 @@ MemoryView::_GetAddressDisplayWidth() const void MemoryView::_GetSelectionRegion(BRegion& region) { + if (fHexMode == HexModeNone) + return; + region.MakeEmpty(); BPoint startPoint = _GetPointForOffset(fSelectionStart); BPoint endPoint = _GetPointForOffset(fSelectionEnd);