From 780d1c40b9b80f965197572f2b7aca459cdf2073 Mon Sep 17 00:00:00 2001 From: David Morasz Date: Sun, 11 Aug 2019 22:32:28 +0200 Subject: [PATCH] added some null safety --- AttachedValuesNodes.cs | 6 +++++- ElementInfoNode.cs | 1 + SubContextNodes.cs | 3 ++- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/AttachedValuesNodes.cs b/AttachedValuesNodes.cs index 7c3ee6d..0295bb3 100644 --- a/AttachedValuesNodes.cs +++ b/AttachedValuesNodes.cs @@ -28,6 +28,7 @@ public void Evaluate(int SpreadMax) for (int i = 0; i < FElement.SliceCount; i++) { var element = FElement[i]; + if (element == null) continue; if (element.Value == null) { FVals[i].SliceCount = FTexts[i].SliceCount = FAuxKeys[i].SliceCount = FAuxVals[i].SliceCount = 0; @@ -72,6 +73,7 @@ public void Evaluate(int SpreadMax) for (int i = 0; i < FElement.SliceCount; i++) { var element = FElement[i]; + if (element == null) continue; if (element.Value == null) { element.Value = new AttachedValues(); @@ -114,6 +116,7 @@ public void Evaluate(int SpreadMax) for (int i = 0; i < FElement.SliceCount; i++) { var element = FElement[i]; + if(element == null) continue; if (element.Value == null) { element.Value = new AttachedValues(); @@ -181,7 +184,8 @@ public void Evaluate(int SpreadMax) for (int i = 0; i < FElement.SliceCount; i++) { - if(FElement[i].Value != null) + if (FElement[i] == null) continue; + if (FElement[i].Value != null) { if(FElement[i].Value.Auxiliary.Count > 0) { diff --git a/ElementInfoNode.cs b/ElementInfoNode.cs index 5e05066..f03a793 100644 --- a/ElementInfoNode.cs +++ b/ElementInfoNode.cs @@ -210,6 +210,7 @@ public class GuiElementInfoNode : IPluginEvaluate protected void AssignElementOutputs(NotuiElement element, int i) { + if (element == null) return; if (element.EnvironmentObject is VEnvironmentData venvdat) { TouchesOut[i] = venvdat.Touches; diff --git a/SubContextNodes.cs b/SubContextNodes.cs index 6f71952..02b9e78 100644 --- a/SubContextNodes.cs +++ b/SubContextNodes.cs @@ -140,10 +140,11 @@ public void Evaluate(int SpreadMax) for (int j = 0; j < FElements[i].SliceCount; j++) { if (FElements[i][j] == null) continue; - if (_prevElements[i].Contains(FElements[i][j])) continue; + if (_prevElements[i]?.Contains(FElements[i][j]) ?? true) continue; FElements[i][j].IsChanged = ElementNodeUtils.ChangedFrames; } + if(_prevElements[i] == null) _prevElements[i] = new Spread(); _prevElements[i].AssignFrom(FElements[i]); if (_areElementsChanged > 0 && FAutoUpdateElements[i] || FUpdateElements[i])