public ClassTableItem (ClassDef klass, Location location) { flags = 0; Class = klass; LocationList = new ArrayList (); LocationList.Add (location); method_table = new MethodTable (klass); field_table = new FieldTable (klass); }
internal Feature(string name, ClassDef par) { parent = par; this.name = name; }
/// <summary> /// Add a nested class to this class /// </summary> /// <param name="attrSet">attributes for this nested class</param> /// <param name="nsName">nested name space name</param> /// <param name="name">nested class name</param> /// <returns>a descriptor for this new nested class</returns> public ClassDef AddNestedClass(TypeAttr attrSet, string nsName, string name) { ClassDef nClass = new ClassDef(attrSet,"",name,metaData); metaData.AddToTable(MDTable.TypeDef,nClass); metaData.AddToTable(MDTable.NestedClass,new MapElem(nClass,Row,MDTable.TypeDef)); nClass.parentClass = this; return (nClass); }
internal MethodImpl(ClassDef par, Method decl, Method bod) { parent = par; header = decl; body = bod; tabIx = MDTable.MethodImpl; }
internal MapElem(ClassDef par, uint elIx, MDTable elemTab) { parent = par; elemIx = elIx; elemTable = elemTab; }
internal InterfaceImpl(ClassDef theClass, Class theInterface) { this.theClass = theClass; this.theInterface = theInterface; tabIx = MDTable.InterfaceImpl; }
protected void AddReference (string full_name, ClassDef klass, Location location) { if (table.Contains (full_name)) return; ClassTableItem item = new ClassTableItem (klass, location); table[full_name] = item; }
internal ClassLayout(int pack, int cSize, ClassDef par) { packSize = (ushort)pack; classSize = (uint)cSize; parent = par; tabIx = MDTable.ClassLayout; }
private void InitPEFile(string name, string fName, bool hasAssembly) { metaData = fileImage.GetMetaData(); thisMod = new Module(fName,metaData); if (hasAssembly) { thisAssembly = new Assembly(name,metaData); metaData.AddToTable(MDTable.Assembly,thisAssembly); } moduleClass = AddClass(TypeAttr.Private,"","<Module>"); moduleClass.SpecialNoSuper(); metaData.AddToTable(MDTable.Module,thisMod); }
internal GenericParameter (ClassDef owner, MetaData metadata, short index, string name) : this (owner, metadata, index, name, true) { }
public FieldTable (ClassDef parent_class) { this.parent_class = parent_class; table = new Hashtable (); }
/// <summary> /// Add a class to this module /// </summary> /// <param name="attrSet">attributes of this class</param> /// <param name="nsName">name space name</param> /// <param name="name">class name</param> /// <param name="superType">super type of this class (extends)</param> /// <returns>a descriptor for this new class</returns> public ClassDef AddClass(TypeAttr attrSet, string nsName, string name, Class superType) { ClassDef aClass = new ClassDef(attrSet,nsName,name,metaData); if (superType != null) aClass.SetSuper(superType); if (PEFile.IsMSCorlib) metaData.mscorlib.SetSpecialSystemClass (nsName, name, aClass); metaData.AddToTable(MDTable.TypeDef,aClass); return aClass; }
/// <summary> /// Add a class which extends System.ValueType to this module /// </summary> /// <param name="attrSet">attributes of this class</param> /// <param name="nsName">name space name</param> /// <param name="name">class name</param> /// <returns>a descriptor for this new class</returns> public ClassDef AddValueClass(TypeAttr attrSet, string nsName, string name, ValueClass vClass) { ClassDef aClass = new ClassDef(attrSet,nsName,name,metaData); if (!ClassDef.IsValueType (nsName, name) && !ClassDef.IsEnum (nsName, name)) { aClass.MakeValueClass(vClass); } else { if (ClassDef.IsEnum (nsName, name)) aClass.SetSuper (metaData.mscorlib.ValueType ()); else aClass.SetSuper (metaData.mscorlib.GetSpecialSystemClass (PrimitiveType.Object)); metaData.mscorlib.SetSpecialSystemClass (nsName, name, aClass); } aClass.SetTypeIndex (PrimitiveType.ValueType.GetTypeIndex ()); metaData.AddToTable(MDTable.TypeDef,aClass); return aClass; }
internal Event(string name, Type eType, ClassDef parent) : base(name, parent) { eventType = eType; tabIx = MDTable.Event; }
/// <summary> /// Add a class which extends System.ValueType to this module /// </summary> /// <param name="attrSet">attributes of this class</param> /// <param name="nsName">name space name</param> /// <param name="name">class name</param> /// <returns>a descriptor for this new class</returns> public ClassDef AddValueClass(TypeAttr attrSet, string nsName, string name, ValueClass vClass) { ClassDef aClass = new ClassDef(attrSet,nsName,name,metaData); aClass.MakeValueClass(vClass); aClass.SetTypeIndex (PrimitiveType.ValueType.GetTypeIndex ()); metaData.AddToTable(MDTable.TypeDef,aClass); return aClass; }
internal Property(string name, Type retType, Type[] pars, ClassDef parent) : base(name, parent) { returnType = retType; parList = pars; if (pars != null) numPars = (uint)pars.Length; tabIx = MDTable.Property; }
/// <summary> /// Add a class to this module /// </summary> /// <param name="attrSet">attributes of this class</param> /// <param name="nsName">name space name</param> /// <param name="name">class name</param> /// <param name="superType">super type of this class (extends)</param> /// <returns>a descriptor for this new class</returns> public ClassDef AddClass(TypeAttr attrSet, string nsName, string name, Class superType) { ClassDef aClass = new ClassDef(attrSet,nsName,name,metaData); aClass.SetSuper(superType); metaData.AddToTable(MDTable.TypeDef,aClass); return aClass; }
internal GenericParameter (ClassDef owner, MetaData metadata, short index, string name, GenericParamAttributes attr) : this (owner, metadata, index, name, attr, true) { }
protected void AddDefined (string full_name, ClassDef klass, Location location) { if (table.Contains (full_name)) return; ClassTableItem item = new ClassTableItem (klass, location); item.Defined = true; table[full_name] = item; }