Browse Source

Extract inlines code generator handling code into its own method.

pull/756/head
Joao Matos 9 years ago
parent
commit
4043449ddc
  1. 22
      src/Generator/Passes/GenerateInlinesCodePass.cs

22
src/Generator/Passes/GenerateInlinesCodePass.cs

@ -46,16 +46,8 @@ namespace CppSharp.Passes @@ -46,16 +46,8 @@ namespace CppSharp.Passes
if (!base.VisitFunctionDecl(function) || !NeedsSymbol(function))
return false;
InlinesCodeGenerator inlinesCodeGenerator;
var module = function.TranslationUnit.Module;
if (inlinesCodeGenerators.ContainsKey(module))
inlinesCodeGenerator = inlinesCodeGenerators[module];
else
{
inlinesCodeGenerators[module] = inlinesCodeGenerator =
new InlinesCodeGenerator(Context, module.Units);
inlinesCodeGenerator.Process();
}
var inlinesCodeGenerator = GetInlinesCodeGenerator(module);
if (module == Options.SystemModule)
return false;
@ -77,6 +69,18 @@ namespace CppSharp.Passes @@ -77,6 +69,18 @@ namespace CppSharp.Passes
!Context.Symbols.FindSymbol(ref mangled);
}
InlinesCodeGenerator GetInlinesCodeGenerator(Module module)
{
if (inlinesCodeGenerators.ContainsKey(module))
return inlinesCodeGenerators[module];
var inlinesCodeGenerator = new InlinesCodeGenerator(Context, module.Units);
inlinesCodeGenerators[module] = inlinesCodeGenerator;
inlinesCodeGenerator.Process();
return inlinesCodeGenerator;
}
private Dictionary<Module, InlinesCodeGenerator> inlinesCodeGenerators =
new Dictionary<Module, InlinesCodeGenerator>();
}

Loading…
Cancel
Save