public void Write(HighFileBuilder fileBuilder, HighMethodBuilder methodBuilder, bool haveDebugInfo, BinaryWriter writer) { HighRegionBuilder regionBuilder = new HighRegionBuilder(); regionBuilder.IndexCfgNode(m_entryNode.Value); MemoryStream regionNodesStream = new MemoryStream(); BinaryWriter regionNodesWriter = new BinaryWriter(regionNodesStream); HighCfgNode cfgNode = regionBuilder.DequeueUnemittedNode(); while (cfgNode != null) { cfgNode.Write(fileBuilder, methodBuilder, regionBuilder, haveDebugInfo, regionNodesWriter); cfgNode = regionBuilder.DequeueUnemittedNode(); } regionNodesWriter.Flush(); regionBuilder.WriteHeader(writer); writer.Flush(); regionNodesStream.WriteTo(writer.BaseStream); }