rustc_metadata: Pass SVH by value

This commit is contained in:
Vadim Petrochenkov 2019-11-24 15:29:35 +03:00
parent 9be526e8eb
commit e4710ade6d
2 changed files with 10 additions and 11 deletions

View File

@ -191,14 +191,13 @@ impl<'a> CrateLoader<'a> {
self.cstore
}
fn existing_match(&self, name: Symbol, hash: Option<&Svh>, kind: PathKind)
-> Option<CrateNum> {
fn existing_match(&self, name: Symbol, hash: Option<Svh>, kind: PathKind) -> Option<CrateNum> {
let mut ret = None;
self.cstore.iter_crate_data(|cnum, data| {
if data.name() != name { return }
match hash {
Some(hash) if *hash == data.hash() => { ret = Some(cnum); return }
Some(hash) if hash == data.hash() => { ret = Some(cnum); return }
Some(..) => return,
None => {}
}
@ -410,10 +409,10 @@ impl<'a> CrateLoader<'a> {
let (root, hash, host_hash, extra_filename, path_kind) = match dep {
Some((root, dep)) => (
Some(root),
Some(&dep.hash),
dep.host_hash.as_ref(),
Some(dep.hash),
dep.host_hash,
Some(&dep.extra_filename[..]),
PathKind::Dependency
PathKind::Dependency,
),
None => (None, None, None, None, PathKind::Crate),
};

View File

@ -262,8 +262,8 @@ crate struct CrateLocator<'a> {
// Immutable per-search configuration.
crate_name: Symbol,
exact_paths: Vec<PathBuf>,
pub hash: Option<&'a Svh>,
pub host_hash: Option<&'a Svh>,
pub hash: Option<Svh>,
pub host_hash: Option<Svh>,
extra_filename: Option<&'a str>,
pub target: &'a Target,
pub triple: TargetTriple,
@ -313,8 +313,8 @@ impl<'a> CrateLocator<'a> {
sess: &'a Session,
metadata_loader: &'a dyn MetadataLoader,
crate_name: Symbol,
hash: Option<&'a Svh>,
host_hash: Option<&'a Svh>,
hash: Option<Svh>,
host_hash: Option<Svh>,
extra_filename: Option<&'a str>,
is_host: bool,
path_kind: PathKind,
@ -792,7 +792,7 @@ impl<'a> CrateLocator<'a> {
}
let hash = root.hash();
if let Some(&expected_hash) = self.hash {
if let Some(expected_hash) = self.hash {
if hash != expected_hash {
info!("Rejecting via hash: expected {} got {}", expected_hash, hash);
self.rejected_via_hash.push(CrateMismatch {