From 1d7dc38c23f60fa6012f0e638bf19d8ebf14ddfb Mon Sep 17 00:00:00 2001 From: Dimitar Dobrev Date: Mon, 22 Apr 2019 19:20:46 +0300 Subject: [PATCH] Optimize the cleaning of invalid names Signed-off-by: Dimitar Dobrev --- .../Passes/CleanInvalidDeclNamesPass.cs | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/Generator/Passes/CleanInvalidDeclNamesPass.cs b/src/Generator/Passes/CleanInvalidDeclNamesPass.cs index 2b1d74d0..dbd2a9f9 100644 --- a/src/Generator/Passes/CleanInvalidDeclNamesPass.cs +++ b/src/Generator/Passes/CleanInvalidDeclNamesPass.cs @@ -10,6 +10,15 @@ namespace CppSharp.Passes { public class CleanInvalidDeclNamesPass : TranslationUnitPass { + public override bool VisitASTContext(ASTContext context) + { + // TODO: Fix this to not need per-generator code. + generator = Options.IsCLIGenerator ? + new CLIHeaders(Context, new List()) : + (CodeGenerator) new CSharpSources(Context); + return base.VisitASTContext(context); + } + public override bool VisitClassDecl(Class @class) { if (!base.VisitClassDecl(@class)) @@ -129,13 +138,10 @@ namespace CppSharp.Passes if (char.IsNumber(name[0])) return '_' + name; - // TODO: Fix this to not need per-generator code. - var units = new List { new TranslationUnit() }; - if (Options.IsCLIGenerator) - return new CLIHeaders(Context, units).SafeIdentifier(name); - - return new CSharpSources(Context, units).SafeIdentifier(name); + return generator.SafeIdentifier(name); } + + private CodeGenerator generator; } }