diff options
author | dotnet-bot <dotnet-bot@microsoft.com> | 2017-06-29 03:00:26 +0300 |
---|---|---|
committer | dotnet-bot <dotnet-bot@microsoft.com> | 2017-06-29 03:00:26 +0300 |
commit | 221b28d9ae571ebaeedcacf94c22ee05e1c5f117 (patch) | |
tree | c0f55b918d1d4518160066fcb864d5ebcc98bde1 /src/ILCompiler.CppCodeGen | |
parent | dc6f0721e564c63d73fea63c48af8031b6bdd167 (diff) |
ProjectX: EmptyInteropStubManager
An empty InteropStubManager is needed for Project X since there is an upstream MCG transform. An empty InteropStubManager should not enforce any interop-related dependencies.
Also Move the creation of DelegateMarshallingStubMapNode and StructMarshallingStubMapNode from MetadataManager to InteropStubManager
[tfs-changeset: 1663795]
Diffstat (limited to 'src/ILCompiler.CppCodeGen')
-rw-r--r-- | src/ILCompiler.CppCodeGen/src/Compiler/CppCodegenCompilationBuilder.cs | 5 | ||||
-rw-r--r-- | src/ILCompiler.CppCodeGen/src/Compiler/DependencyAnalysis/CppCodegenNodeFactory.cs | 4 |
2 files changed, 6 insertions, 3 deletions
diff --git a/src/ILCompiler.CppCodeGen/src/Compiler/CppCodegenCompilationBuilder.cs b/src/ILCompiler.CppCodeGen/src/Compiler/CppCodegenCompilationBuilder.cs index 3f56e757c..a9b278d40 100644 --- a/src/ILCompiler.CppCodeGen/src/Compiler/CppCodegenCompilationBuilder.cs +++ b/src/ILCompiler.CppCodeGen/src/Compiler/CppCodegenCompilationBuilder.cs @@ -8,6 +8,8 @@ using System.Collections.Generic; using ILCompiler.DependencyAnalysis; using ILCompiler.DependencyAnalysisFramework; +using Internal.TypeSystem; + namespace ILCompiler { public sealed class CppCodegenCompilationBuilder : CompilationBuilder @@ -29,7 +31,8 @@ namespace ILCompiler public override ICompilation ToCompilation() { - CppCodegenNodeFactory factory = new CppCodegenNodeFactory(_context, _compilationGroup, _metadataManager, _nameMangler, _vtableSliceProvider); + var interopStubManager = new CompilerGeneratedInteropStubManager(_compilationGroup, _context, new InteropStateManager(_compilationGroup.GeneratedAssembly)); + CppCodegenNodeFactory factory = new CppCodegenNodeFactory(_context, _compilationGroup, _metadataManager, interopStubManager, _nameMangler, _vtableSliceProvider); DependencyAnalyzerBase<NodeFactory> graph = CreateDependencyGraph(factory); return new CppCodegenCompilation(graph, factory, _compilationRoots, _logger, _config); diff --git a/src/ILCompiler.CppCodeGen/src/Compiler/DependencyAnalysis/CppCodegenNodeFactory.cs b/src/ILCompiler.CppCodeGen/src/Compiler/DependencyAnalysis/CppCodegenNodeFactory.cs index 2a0e66acb..0aa579bf7 100644 --- a/src/ILCompiler.CppCodeGen/src/Compiler/DependencyAnalysis/CppCodegenNodeFactory.cs +++ b/src/ILCompiler.CppCodeGen/src/Compiler/DependencyAnalysis/CppCodegenNodeFactory.cs @@ -11,8 +11,8 @@ namespace ILCompiler.DependencyAnalysis public sealed class CppCodegenNodeFactory : NodeFactory { public CppCodegenNodeFactory(CompilerTypeSystemContext context, CompilationModuleGroup compilationModuleGroup, MetadataManager metadataManager, - NameMangler nameMangler, VTableSliceProvider vtableSliceProvider) - : base(context, compilationModuleGroup, metadataManager, nameMangler, new LazyGenericsDisabledPolicy(), vtableSliceProvider) + InteropStubManager interopStubManager, NameMangler nameMangler, VTableSliceProvider vtableSliceProvider) + : base(context, compilationModuleGroup, metadataManager, interopStubManager, nameMangler, new LazyGenericsDisabledPolicy(), vtableSliceProvider) { } |