Descriptor for another module in THIS assembly
Inheritance: ResolutionScope, IExternRef
Beispiel #1
0
        public override void Resolve(CodeGen codegen)
        {
            if (is_resolved)
            {
                return;
            }

            ModuleRef = codegen.PEFile.AddExternModule(name);
            if (customattr_list != null)
            {
                foreach (CustomAttr customattr in customattr_list)
                {
                    customattr.AddTo(codegen, ModuleRef);
                }
            }

            is_resolved = true;
        }
		internal ImplMap(ushort flag, Method implMeth, string iName, ModuleRef mScope) 
		{
			flags = flag;
			meth = implMeth;
			importName = iName;
			importScope = mScope;
			tabIx = MDTable.ImplMap;
			if (iName == null) flags |= NoMangle;
			//throw(new NotYetImplementedException("PInvoke "));
		}
		public void AddPInvokeInfo(ModuleRef scope, string methName,
				PInvokeAttr callAttr) {
			pinvokeImpl = new ImplMap((ushort)callAttr,this,methName,scope);
			methFlags |= PInvokeImpl;
		}
Beispiel #4
0
                public override void Resolve (CodeGen codegen)
                {
                        if (is_resolved)
                                return;

                        ModuleRef = codegen.PEFile.AddExternModule (name);
                        if (customattr_list != null)
                                foreach (CustomAttr customattr in customattr_list)
                                        customattr.AddTo (codegen, ModuleRef);

                        is_resolved = true;
                }
Beispiel #5
0
 /// <summary>
 /// Add an external module to this PEFile (.module extern)
 /// </summary>
 /// <param name="name">the external module name</param>
 /// <returns>a descriptor for this external module</returns>
 public ModuleRef AddExternModule(string name) {
   ModuleRef modRef = new ModuleRef(metaData,name);
   metaData.AddToTable(MDTable.ModuleRef,modRef);
   return modRef;
 }