diff --git a/src/Generator/Driver.cs b/src/Generator/Driver.cs index 6fd905a4..bcfe4766 100644 --- a/src/Generator/Driver.cs +++ b/src/Generator/Driver.cs @@ -32,18 +32,6 @@ namespace CppSharp public ASTContext ASTContext { get; private set; } public SymbolContext Symbols { get; private set; } - public struct TranslationUnitRenameInfo - { - public string translationUnit; - public string rootNamespaceName; - } - public static Dictionary RootNamespaceRenames { get; private set; } - - static Driver() - { - Driver.RootNamespaceRenames = new Dictionary(); - } - public Driver(DriverOptions options, IDiagnosticConsumer diagnostics) { Options = options; @@ -272,6 +260,7 @@ namespace CppSharp TranslationUnitPasses.AddPass(new CheckIgnoredDeclsPass()); TranslationUnitPasses.AddPass(new CheckFlagEnumsPass()); TranslationUnitPasses.AddPass(new CheckDuplicatedNamesPass()); + TranslationUnitPasses.AddPass(new RenameRootNamespacesPass()); if (Options.IsCSharpGenerator && Options.GenerateDefaultValuesForArguments) { TranslationUnitPasses.AddPass(new HandleDefaultParamValuesPass()); @@ -295,8 +284,6 @@ namespace CppSharp if (Options.GeneratePropertiesAdvanced) TranslationUnitPasses.AddPass(new GetterSetterToPropertyAdvancedPass()); - - TranslationUnitPasses.AddPass(new RenameRootNamespacesPass()); } public void ProcessCode() diff --git a/src/Generator/Passes/RenameRootNamespaces.cs b/src/Generator/Passes/RenameRootNamespaces.cs index 155b8e7b..8177d19d 100644 --- a/src/Generator/Passes/RenameRootNamespaces.cs +++ b/src/Generator/Passes/RenameRootNamespaces.cs @@ -1,3 +1,4 @@ +using System.Collections.Generic; using CppSharp.AST; namespace CppSharp.Passes @@ -14,21 +15,19 @@ namespace CppSharp.Passes return false; var fileName = unit.TranslationUnit.FileName; - if (Driver.RootNamespaceRenames.ContainsKey(fileName)) + if (rootNamespaceRenames.ContainsKey(fileName)) { - var rootNamespace = Driver.RootNamespaceRenames[fileName].rootNamespaceName; + var rootNamespace = rootNamespaceRenames[fileName]; if (this.Driver.Options.OutputNamespace != rootNamespace) unit.Name = rootNamespace; } else if (unit.GenerationKind == GenerationKind.Generate) { - Driver.RootNamespaceRenames.Add(fileName, new Driver.TranslationUnitRenameInfo - { - translationUnit = fileName, - rootNamespaceName = Driver.Options.OutputNamespace, - }); + rootNamespaceRenames.Add(fileName, Driver.Options.OutputNamespace); } return true; } + + private static readonly Dictionary rootNamespaceRenames = new Dictionary(); } }