Browse Source

Optimize the cleaning of invalid names

Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
pull/1210/head
Dimitar Dobrev 7 years ago
parent
commit
1d7dc38c23
  1. 18
      src/Generator/Passes/CleanInvalidDeclNamesPass.cs

18
src/Generator/Passes/CleanInvalidDeclNamesPass.cs

@ -10,6 +10,15 @@ namespace CppSharp.Passes @@ -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<TranslationUnit>()) :
(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 @@ -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<TranslationUnit> { 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;
}
}

Loading…
Cancel
Save