Skip to content
This repository was archived by the owner on Sep 11, 2023. It is now read-only.

Commit 1007f3f

Browse files
committed
Attempt to fix AC crash
1 parent b1322b9 commit 1007f3f

File tree

2 files changed

+12
-6
lines changed

2 files changed

+12
-6
lines changed

SourcepawnCondenser/SourcepawnCondenser/SourcemodDefinition/SMDefinition.cs

+8-4
Original file line numberDiff line numberDiff line change
@@ -180,12 +180,14 @@ private void ProduceStringArrays(int caret = -1, List<SMFunction> currentFunctio
180180
}
181181
}
182182

183-
public void ProduceACNodes(List<ACNode> nodes)
183+
public List<ACNode> ProduceACNodes()
184184
{
185185

186-
nodes.Clear();
187-
188-
nodes.Capacity = Enums.Count + Structs.Count + ConstVariables.Count + Functions.Count;
186+
var nodes = new List<ACNode>
187+
{
188+
Capacity = Enums.Count + Structs.Count + ConstVariables.Count + Functions.Count
189+
};
190+
189191
nodes.AddRange(ACNode.ConvertFromStringArray(FunctionStrings, true, "▲ "));
190192
nodes.AddRange(ACNode.ConvertFromStringList(TypeStrings, false, "♦ "));
191193
nodes.AddRange(ACNode.ConvertFromStringList(Constants, false, "• "));
@@ -196,6 +198,8 @@ public void ProduceACNodes(List<ACNode> nodes)
196198

197199
//nodes = nodes.Distinct(new ACNodeEqualityComparer()).ToList(); Methodmaps and Functions can and will be the same.
198200
nodes.Sort((a, b) => string.CompareOrdinal(a.EntryName, b.EntryName));
201+
202+
return nodes;
199203
}
200204

201205
public void MergeDefinitions(SMDefinition def)

UI/Components/EditorElement/EditorElementIntellisenseController.cs

+4-2
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,8 @@ public void LoadAutoCompletes()
136136

137137
_smDef = Program.Configs[Program.SelectedConfig].GetSMDef();
138138
_acEntries = new List<ACNode>();
139-
_smDef.ProduceACNodes(_acEntries);
139+
_acEntries.Clear();
140+
_acEntries = _smDef.ProduceACNodes();
140141

141142

142143
AutoCompleteBox.ItemsSource = _acEntries;
@@ -149,7 +150,8 @@ public void LoadAutoCompletes()
149150
/// <param name="smDef"> The SMDefinition </param>
150151
private void InterruptLoadAutoCompletes(SMDefinition smDef)
151152
{
152-
smDef.ProduceACNodes(_acEntries);
153+
_acEntries.Clear();
154+
_acEntries = smDef.ProduceACNodes();
153155
Dispatcher?.Invoke(() =>
154156
{
155157
_acEntries = _acEntries;

0 commit comments

Comments
 (0)