private static HuffmanTree ReadHuffmanTree(BinaryReader reader, BinaryHelpFileHeader header) { if (reader.BaseStream.Position != header.HuffmanTreeOffset) { throw new InvalidDataException("Incorrect Huffman Tree section position."); } //int sectionSize = file.Header.TopicTextOffset - file.Header.HuffmanTreeOffset; HuffmanTree tree = HuffmanTree.Deserialize(reader); if (tree.IsEmpty || tree.IsSingular) { throw new InvalidDataException("Invalid huffman tree."); } return(tree); }