internal void WriteTildeStream(FileImage output) { long startTilde = output.Seek(0,SeekOrigin.Current); output.Write((uint)0); // Reserved #if NET_2_0 || BOOTSTRAP_NET_2_0 output.Write((byte)2); // MajorVersion output.Write((byte)0); // MinorVersion #else output.Write((byte)1); // MajorVersion output.Write((byte)0); // MinorVersion #endif output.Write(heapSizes); output.Write((byte)1); // Reserved output.Write(valid); output.Write(sorted); for (int i=0; i < numMetaDataTables; i++) { if (metaDataTables[i] != null) { uint count = (uint)metaDataTables[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 (metaDataTables[i] != null) { // Console.WriteLine("Starting metaData table " + i + " at " + (output.Seek(0,SeekOrigin.Current) - startTilde)); ArrayList table = metaDataTables[i]; for (int j=0; j < table.Count; j++) { ((MetaDataElement)table[j]).Write(output); } } } // Console.WriteLine("Writing padding at " + output.Seek(0,SeekOrigin.Current)); for (int i=0; i < tildePadding; i++) output.Write((byte)0); }