private TableIndex ( MDTable tableIx ) : uint | ||
tableIx | MDTable | |
return | uint |
internal override sealed void BuildTables(MetaDataOut md) { md.AddToTable(MDTable.TypeDef,this); //if ((flags & (uint)TypeAttr.Interface) != 0) { superType = null; } if (superType != null) { superType.BuildMDTables(md); if (superType is ClassSpec) md.AddToTable(MDTable.TypeSpec,superType); } for (int i=0; i < genericParams.Count; i++) { ((GenericParam)genericParams[i]).BuildMDTables(md); } nameIx = md.AddToStringsHeap(name); nameSpaceIx = md.AddToStringsHeap(nameSpace); if (security != null) { for (int i=0; i < security.Count; i++) { ((DeclSecurity)security[i]).BuildMDTables(md); } } // Console.WriteLine("Building tables for " + name); if (layout != null) layout.BuildMDTables(md); // Console.WriteLine("adding methods " + methods.Count); methodIx = md.TableIndex(MDTable.Method); for (int i=0; i < methods.Count; i++) { ((MethodDef)methods[i]).BuildMDTables(md); } // Console.WriteLine("adding fields"); fieldIx = md.TableIndex(MDTable.Field); for (int i=0; i < fields.Count; i++) { ((FieldDef)fields[i]).BuildMDTables(md); } // Console.WriteLine("adding interfaceimpls and methodimpls"); if (interfaces.Count > 0) { for (int i=0; i < interfaces.Count; i++) { ((InterfaceImpl)interfaces[i]).BuildMDTables(md); } } if (methodImpls.Count > 0) { for (int i=0; i < methodImpls.Count; i++) { ((MethodImpl)methodImpls[i]).BuildMDTables(md); } } // Console.WriteLine("adding events and properties"); if (events.Count > 0) { new MapElem(this,md.TableIndex(MDTable.Event),MDTable.EventMap).BuildMDTables(md); for (int i=0; i < events.Count; i++) { ((Event)events[i]).BuildMDTables(md); } } if (properties.Count > 0) { new MapElem(this,md.TableIndex(MDTable.Property),MDTable.PropertyMap).BuildMDTables(md); for (int i=0; i < properties.Count; i++) { ((Property)properties[i]).BuildMDTables(md); } } // Console.WriteLine("Adding nested classes"); if (nestedClasses.Count > 0) { for (int i=0; i < nestedClasses.Count; i++) { ClassDef nClass = (ClassDef)nestedClasses[i]; nClass.BuildMDTables(md); new MapElem(nClass,this,MDTable.NestedClass).BuildTables(md); } } // Console.WriteLine("End of building tables"); }
internal override sealed void BuildTables(MetaDataOut md) { md.AddToTable(MDTable.Method,this); nameIx = md.AddToStringsHeap(name); if (genericParams != null) { for (int i=0; i < genericParams.Count; i++) { ((GenericParam)genericParams[i]).BuildMDTables(md); } } if (security != null) { for (int i=0; i < security.Count; i++) { ((DeclSecurity)security[i]).BuildMDTables(md); } } if (pinvokeImpl != null) pinvokeImpl.BuildMDTables(md); if (entryPoint) md.SetEntryPoint(this); if (locals != null) { localSig = new LocalSig(locals); localSig.BuildMDTables(md); } try { if (code != null) { if (code.IsEmpty()) { code = null; } else { code.BuildTables(md); } } } catch (InstructionException ex) { throw new Exception(ex.AddMethodName(name)); } parIx = md.TableIndex(MDTable.Param); for (int i=0; i < sig.numPars; i++) { parList[i].seqNo = (ushort)(i+1); parList[i].BuildMDTables(md); } sig.BuildTables(md); }