From 8dffaa1326c01ad88089b365ffcc580040ab747a Mon Sep 17 00:00:00 2001 From: Lukasz Baldyga Date: Wed, 2 Dec 2020 22:16:42 +0000 Subject: [PATCH] ValueStorage now removes stacks after lowering stack count --- .../Verbs/Value/ValueStorage.cs | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/Advanced Software Engineering/Advanced Software Engineering/Verbs/Value/ValueStorage.cs b/Advanced Software Engineering/Advanced Software Engineering/Verbs/Value/ValueStorage.cs index ef3a20b..df0ed16 100644 --- a/Advanced Software Engineering/Advanced Software Engineering/Verbs/Value/ValueStorage.cs +++ b/Advanced Software Engineering/Advanced Software Engineering/Verbs/Value/ValueStorage.cs @@ -6,16 +6,13 @@ namespace Advanced_Software_Engineering.Verbs.Value { protected int currentStack; protected Dictionary> Variables = new Dictionary>(); - protected List VariableList = new List(); public ValueStorage() { Reset(); } public void Reset() { - //for every ivalue Variables = new Dictionary>(); - //for (int index = 0; index < VariableList.Count; index++) VariableList[index] = null; SetStack(0); } @@ -30,8 +27,11 @@ namespace Advanced_Software_Engineering.Verbs.Value { } public void DecreaseStack() { - currentStack--; - SetStack(currentStack); + if (currentStack > 0) { + Variables.Remove(currentStack); + currentStack--; + SetStack(currentStack); + } } public void SetVariable(string name, int stack, IValue value) { @@ -39,12 +39,7 @@ namespace Advanced_Software_Engineering.Verbs.Value { else { if (CheckVariableExists(name, stack)) Variables[stack][name] = value; else if (CheckVariableExists(name, 0)) Variables[0][name] = value; - else// if(value == null) { - Variables[stack][name] = value; - //VariableList.Add(Variables[stack][name]); - //} else { - // throw new Exception("Tried setting a variable that was not declared"); - //} + else Variables[stack][name] = value; } }