コード例 #1
0
        public ReadyToRunCodegenNodeFactory(
            CompilerTypeSystemContext context,
            CompilationModuleGroup compilationModuleGroup,
            NameMangler nameMangler,
            ModuleTokenResolver moduleTokenResolver,
            SignatureContext signatureContext,
            CopiedCorHeaderNode corHeaderNode,
            ResourceData win32Resources,
            AttributePresenceFilterNode attributePresenceFilterNode)
            : base(context,
                   compilationModuleGroup,
                   nameMangler,
                   new ReadyToRunTableManager(context))
        {
            Resolver                = moduleTokenResolver;
            InputModuleContext      = signatureContext;
            CopiedCorHeaderNode     = corHeaderNode;
            AttributePresenceFilter = attributePresenceFilterNode;
            if (!win32Resources.IsEmpty)
            {
                Win32ResourcesNode = new Win32ResourcesNode(win32Resources);
            }

            CreateNodeCaches();
        }
コード例 #2
0
        public NodeFactory(
            CompilerTypeSystemContext context,
            CompilationModuleGroup compilationModuleGroup,
            NameMangler nameMangler,
            ModuleTokenResolver moduleTokenResolver,
            SignatureContext signatureContext,
            CopiedCorHeaderNode corHeaderNode,
            DebugDirectoryNode debugDirectoryNode,
            ResourceData win32Resources,
            AttributePresenceFilterNode attributePresenceFilterNode,
            HeaderNode headerNode)
        {
            TypeSystemContext      = context;
            CompilationModuleGroup = compilationModuleGroup;
            Target                  = context.Target;
            NameMangler             = nameMangler;
            MetadataManager         = new ReadyToRunTableManager(context);
            Resolver                = moduleTokenResolver;
            InputModuleContext      = signatureContext;
            CopiedCorHeaderNode     = corHeaderNode;
            DebugDirectoryNode      = debugDirectoryNode;
            AttributePresenceFilter = attributePresenceFilterNode;
            Header                  = headerNode;
            if (!win32Resources.IsEmpty)
            {
                Win32ResourcesNode = new Win32ResourcesNode(win32Resources);
            }

            CreateNodeCaches();
        }
コード例 #3
0
        public NodeFactory(
            CompilerTypeSystemContext context,
            CompilationModuleGroup compilationModuleGroup,
            NameMangler nameMangler,
            CopiedCorHeaderNode corHeaderNode,
            DebugDirectoryNode debugDirectoryNode,
            ResourceData win32Resources,
            ReadyToRunFlags flags)
        {
            TypeSystemContext      = context;
            CompilationModuleGroup = compilationModuleGroup;
            Target              = context.Target;
            NameMangler         = nameMangler;
            MetadataManager     = new ReadyToRunTableManager(context);
            CopiedCorHeaderNode = corHeaderNode;
            DebugDirectoryNode  = debugDirectoryNode;
            Resolver            = new ModuleTokenResolver(compilationModuleGroup, TypeSystemContext);
            Header              = new GlobalHeaderNode(Target, flags);
            if (!win32Resources.IsEmpty)
            {
                Win32ResourcesNode = new Win32ResourcesNode(win32Resources);
            }

            if (CompilationModuleGroup.IsCompositeBuildMode)
            {
                // Create a null top-level signature context to force producing module overrides for all signaturess
                SignatureContext = new SignatureContext(null, Resolver);
            }
            else
            {
                SignatureContext = new SignatureContext(CompilationModuleGroup.CompilationModuleSet.Single(), Resolver);
            }

            CreateNodeCaches();
        }
コード例 #4
0
        public ReadyToRunCodegenNodeFactory(
            CompilerTypeSystemContext context,
            CompilationModuleGroup compilationModuleGroup,
            NameMangler nameMangler,
            ModuleTokenResolver moduleTokenResolver,
            SignatureContext signatureContext,
            CopiedCorHeaderNode corHeaderNode,
            ResourceData win32Resources,
            AttributePresenceFilterNode attributePresenceFilterNode)
            : base(context,
                   compilationModuleGroup,
                   nameMangler,
                   new ReadyToRunTableManager(context))
        {
            // To make the code future compatible to the composite R2R story
            // do NOT attempt to pass and store _inputModule here
            _importMethods = new Dictionary <TypeAndMethod, IMethodNode>();

            Resolver                = moduleTokenResolver;
            InputModuleContext      = signatureContext;
            CopiedCorHeaderNode     = corHeaderNode;
            AttributePresenceFilter = attributePresenceFilterNode;
            if (!win32Resources.IsEmpty)
            {
                Win32ResourcesNode = new Win32ResourcesNode(win32Resources);
            }
        }
コード例 #5
0
        public ReadyToRunCodegenNodeFactory(
            CompilerTypeSystemContext context,
            CompilationModuleGroup compilationModuleGroup,
            NameMangler nameMangler,
            ModuleTokenResolver moduleTokenResolver,
            SignatureContext signatureContext,
            CopiedCorHeaderNode corHeaderNode,
            ResourceData win32Resources)
            : base(context,
                   compilationModuleGroup,
                   nameMangler,
                   new ReadyToRunTableManager(context))
        {
            _importMethods = new Dictionary <TypeAndMethod, IMethodNode>();

            Resolver            = moduleTokenResolver;
            InputModuleContext  = signatureContext;
            CopiedCorHeaderNode = corHeaderNode;
            if (!win32Resources.IsEmpty)
            {
                Win32ResourcesNode = new Win32ResourcesNode(win32Resources);
            }
        }