diff options
Diffstat (limited to 'src/librustc_metadata/locator.rs')
-rw-r--r-- | src/librustc_metadata/locator.rs | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/librustc_metadata/locator.rs b/src/librustc_metadata/locator.rs index 34b07af9f01..7a3575cb50b 100644 --- a/src/librustc_metadata/locator.rs +++ b/src/librustc_metadata/locator.rs @@ -242,7 +242,7 @@ use std::io::{self, Read}; use std::path::{Path, PathBuf}; use std::time::Instant; -use flate; +use flate2::read::ZlibDecoder; use owning_ref::{ErasedBoxRef, OwningRef}; pub struct CrateMismatch { @@ -861,8 +861,9 @@ fn get_metadata_section_imp(target: &Target, // Header is okay -> inflate the actual metadata let compressed_bytes = &buf[header_len..]; debug!("inflating {} bytes of compressed metadata", compressed_bytes.len()); - match flate::inflate_bytes(compressed_bytes) { - Ok(inflated) => { + let mut inflated = Vec::new(); + match ZlibDecoder::new(compressed_bytes).read_to_end(&mut inflated) { + Ok(_) => { let buf = unsafe { OwningRef::new_assert_stable_address(inflated) }; buf.map_owner_box().erase_owner() } |