PERWAPI.MetaDataOut.WriteTildeStream C# (CSharp) Method

WriteTildeStream() private method

private WriteTildeStream ( PEWriter output ) : void
output PEWriter
return void
        internal void WriteTildeStream(PEWriter output)
        {
            long startTilde = output.Seek(0,SeekOrigin.Current);
            //Console.WriteLine("Starting tilde output at offset " + Hex.Long(startTilde));
            output.Write((uint)0); // Reserved
            output.Write(output.verInfo.tsMajVer); // MajorVersion
            output.Write(output.verInfo.tsMinVer); // MinorVersion
            output.Write(heapSizes);
            output.Write((byte)1); // Reserved
            output.Write(valid);
            output.Write(sorted);
            for (int i=0; i < NumMetaDataTables; i++) {
                if (tables[i] != null) {
                    uint count = (uint)tables[i].Count;
                    output.Write(count);
                }
            }
            long tabStart = output.Seek(0,SeekOrigin.Current);
            //Console.WriteLine("Starting metaData tables at " + tabStart);
            for (int i=0; i < NumMetaDataTables; i++) {
                if (tables[i] != null) {
                    //Console.WriteLine("Starting metaData table " + i + " at " + (output.Seek(0,SeekOrigin.Current) - startTilde));
                    ArrayList table = tables[i];
                    for (int j=0; j < table.Count; j++) {
                        ((MetaDataElement)table[j]).Write(output);
                    }
                }
            }
            // reset the typespec flags
            if (tables[(int)MDTable.TypeSpec] != null) {
                ArrayList typeSpecTable = tables[(int)MDTable.TypeSpec];
                for (int i=0; i < typeSpecTable.Count; i++) {
                    ((TypeSpec)typeSpecTable[i]).typeSpecAdded = false;
                }
            }
            //Console.WriteLine("Writing padding at " + output.Seek(0,SeekOrigin.Current));
            for (int i=0; i < tildePadding; i++) output.Write((byte)0);
        }