diff options
| author | Yoshiki Matsuda <myskjp@gmail.com> | 2022-05-08 14:19:04 +0900 |
|---|---|---|
| committer | Yoshiki Matsuda <myskjp@gmail.com> | 2022-07-02 22:54:37 +0900 |
| commit | 7eb64b4901f43d01aa6bd9a39ef299c0380fd600 (patch) | |
| tree | a06ceb5eaa316fdbfcd899a3cd20c79a031a4bca | |
| parent | c57d7788729f32e74966f67eea582ec7ec75a133 (diff) | |
| download | rust-7eb64b4901f43d01aa6bd9a39ef299c0380fd600.tar.gz rust-7eb64b4901f43d01aa6bd9a39ef299c0380fd600.zip | |
flush and assert when counting zero bytes
| -rw-r--r-- | compiler/rustc_metadata/src/rmeta/encoder.rs | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/compiler/rustc_metadata/src/rmeta/encoder.rs b/compiler/rustc_metadata/src/rmeta/encoder.rs index f3853255f7b..3ae4fbb70a5 100644 --- a/compiler/rustc_metadata/src/rmeta/encoder.rs +++ b/compiler/rustc_metadata/src/rmeta/encoder.rs @@ -733,14 +733,18 @@ impl<'a, 'tcx> EncodeContext<'a, 'tcx> { assert_eq!(total_bytes, computed_total_bytes); if tcx.sess.meta_stats() { + self.opaque.flush().unwrap(); + + let pos_before_rewind = self.opaque.file().stream_position().unwrap(); let mut zero_bytes = 0; - self.opaque.file().seek(std::io::SeekFrom::Start(0)).unwrap(); + self.opaque.file().rewind().unwrap(); let file = std::io::BufReader::new(self.opaque.file()); for e in file.bytes() { if e.unwrap() == 0 { zero_bytes += 1; } } + assert_eq!(self.opaque.file().stream_position().unwrap(), pos_before_rewind); let perc = |bytes| (bytes * 100) as f64 / total_bytes as f64; let p = |label, bytes| { |
