diff --git a/src/Generator/Generators/NAPI/NAPISources.cs b/src/Generator/Generators/NAPI/NAPISources.cs index 5d8f0af7..5ba39d33 100644 --- a/src/Generator/Generators/NAPI/NAPISources.cs +++ b/src/Generator/Generators/NAPI/NAPISources.cs @@ -822,6 +822,11 @@ namespace CppSharp.Generators.Cpp DFSM = Minimize.MinimizeDFSM(DFSM); #endif + // The construction step above can result in unordered final states, so re-order them to + // make the following code generation steps easier. + + DFSM.F = DFSM.F.OrderBy(f => f).ToList(); + return DFSM; } diff --git a/src/Generator/Utils/FSM/DFSM.cs b/src/Generator/Utils/FSM/DFSM.cs index 125ccef2..8e15c84c 100644 --- a/src/Generator/Utils/FSM/DFSM.cs +++ b/src/Generator/Utils/FSM/DFSM.cs @@ -9,7 +9,7 @@ namespace CppSharp.Utils.FSM public readonly List Sigma = new List(); public readonly List Delta = new List(); public List Q0 = new List(); - public readonly List F = new List(); + public List F = new List(); public DFSM(IEnumerable q, IEnumerable sigma, IEnumerable delta, IEnumerable q0, IEnumerable f){