public void Write() { if (IsEmbedded) { return; } WritePdbFile(); if (final_stream.value != null) { writer.BaseStream.Seek(0, SeekOrigin.Begin); var buffer = new byte [8192]; CryptoService.CopyStreamChunk(writer.BaseStream, final_stream.value, buffer, (int)writer.BaseStream.Length); } }
void ComputeChecksumAndPdbId() { var buffer = new byte [8192]; // Compute the has of the entire file - PDB ID is zeroes still writer.BaseStream.Seek(0, SeekOrigin.Begin); var sha256 = SHA256.Create(); using (var crypto_stream = new CryptoStream(Stream.Null, sha256, CryptoStreamMode.Write)) { CryptoService.CopyStreamChunk(writer.BaseStream, crypto_stream, buffer, (int)writer.BaseStream.Length); } pdb_checksum = sha256.Hash; var hashBytes = new ByteBuffer(pdb_checksum); pdb_id_guid = new Guid(hashBytes.ReadBytes(16)); pdb_id_stamp = hashBytes.ReadUInt32(); }