From 5fb7bd4f770847f353dc033347c7166c09ced926 Mon Sep 17 00:00:00 2001 From: Souryo Date: Tue, 12 Sep 2017 19:39:03 -0400 Subject: [PATCH] Debugger: Fixed crash when attempting to copy via Ctrl-C when trace log is empty --- GUI.NET/Debugger/frmTraceLogger.cs | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/GUI.NET/Debugger/frmTraceLogger.cs b/GUI.NET/Debugger/frmTraceLogger.cs index daac79b6..8e137090 100644 --- a/GUI.NET/Debugger/frmTraceLogger.cs +++ b/GUI.NET/Debugger/frmTraceLogger.cs @@ -134,15 +134,17 @@ namespace Mesen.GUI.Debugger { switch(keyData) { case Keys.C | Keys.Control: - if(_previousTrace != null) { + if(_previousTrace != null && !this.txtCondition.Focused && txtTraceLog.SelectionStart >= 0) { string[] lines = _previousTrace.Split('\n'); StringBuilder sb = new StringBuilder(); - for(int i = txtTraceLog.SelectionStart, end = txtTraceLog.SelectionStart + txtTraceLog.SelectionLength; i <= end; i++) { + for(int i = txtTraceLog.SelectionStart, end = txtTraceLog.SelectionStart + txtTraceLog.SelectionLength; i <= end && i < lines.Length; i++) { sb.AppendLine(lines[i]); } Clipboard.SetText(sb.ToString()); + return true; } - return true; + break; + } return base.ProcessCmdKey(ref msg, keyData); } @@ -197,9 +199,9 @@ namespace Mesen.GUI.Debugger txtTraceLog.ShowSingleContentLineNotes = chkShowByteCode.Checked; txtTraceLog.LineIndentations = indent.ToArray(); - txtTraceLog.TextLines = lineContent.ToArray(); txtTraceLog.LineNumbers = programCounter.ToArray(); txtTraceLog.TextLineNotes = byteCode.ToArray(); + txtTraceLog.TextLines = lineContent.ToArray(); if(scrollToBottom) { txtTraceLog.ScrollToLineIndex(txtTraceLog.LineCount - 1);