internal override sealed void BuildTables(MetaDataOut md) { md.AddToTable(MDTable.File,this); nameIx = md.AddToStringsHeap(name); hashIx = md.AddToBlobHeap(hashBytes); if (entryPoint) md.SetEntryPoint(this); }
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); }