Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/monodevelop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLluis Sanchez <lluis@xamarin.com>2019-11-15 18:42:21 +0300
committerGitHub <noreply@github.com>2019-11-15 18:42:21 +0300
commitcbe8924f8aa63cb0175329190b587b23ba956cbe (patch)
treed2e08aba544f56ac36439fed2b2fa0b24a00feac
parentf5545da3fd325f2ba7198172cd7a501e11e44e94 (diff)
parentd6f0f14d1834e6bff1fdb378f9d130f184336a29 (diff)
Merge pull request #9337 from mono/backport-pr-9335-to-release-8.4monodevelop-8.4.0.2535
[release-8.4] [Debugger] Fixed an NRE exception in OVTVController.RemoveValue if no…
-rw-r--r--main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ObjectValue/Mac/MacObjectValueTreeView.cs5
-rw-r--r--main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ObjectValue/ObjectValueTreeViewController.cs10
2 files changed, 13 insertions, 2 deletions
diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ObjectValue/Mac/MacObjectValueTreeView.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ObjectValue/Mac/MacObjectValueTreeView.cs
index 42504aa22a..f0e8816a96 100644
--- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ObjectValue/Mac/MacObjectValueTreeView.cs
+++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ObjectValue/Mac/MacObjectValueTreeView.cs
@@ -828,6 +828,11 @@ namespace MonoDevelop.Debugger
foreach (var row in selectedRows) {
var item = (MacObjectValueNode) ItemAtRow ((nint) row);
+ // The user is only allowed to delete top-level nodes. It doesn't make sense to allow
+ // deleting child nodes of anything else.
+ if (!(item.Target.Parent is RootObjectValueNode))
+ continue;
+
nodesToDelete.Add (item.Target);
}
diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ObjectValue/ObjectValueTreeViewController.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ObjectValue/ObjectValueTreeViewController.cs
index 30801ce85c..13ebca43b2 100644
--- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ObjectValue/ObjectValueTreeViewController.cs
+++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ObjectValue/ObjectValueTreeViewController.cs
@@ -299,12 +299,18 @@ namespace MonoDevelop.Debugger
void RemoveValue (ObjectValueNode node)
{
var toplevel = node.Parent is RootObjectValueNode;
- int index = node.Parent.Children.IndexOf (node);
+ int index;
+
+ if (node.Parent != null) {
+ index = node.Parent.Children.IndexOf (node);
+ } else {
+ index = -1;
+ }
UnregisterNode (node);
OnEvaluationCompleted (node, new ObjectValueNode[0]);
- if (AllowWatchExpressions && toplevel)
+ if (AllowWatchExpressions && toplevel && index != -1)
ExpressionRemoved?.Invoke (this, new ExpressionRemovedEventArgs (index, node.Name));
}