diff options
| author | Alex Crichton <alex@alexcrichton.com> | 2013-12-18 14:10:28 -0800 |
|---|---|---|
| committer | Alex Crichton <alex@alexcrichton.com> | 2013-12-19 17:08:05 -0800 |
| commit | 73fceca7d6140fb208fa701074c4b25a4dd260c6 (patch) | |
| tree | 4d47a7257ec5c7b3f90ef432a81052521a4742f2 /src/librustc/metadata/creader.rs | |
| parent | 6d2e61bc6cadcfde6952913b7e170ded57f7b0dd (diff) | |
| download | rust-73fceca7d6140fb208fa701074c4b25a4dd260c6.tar.gz rust-73fceca7d6140fb208fa701074c4b25a4dd260c6.zip | |
Purge @-boxes from the reading half of EBML
Now that the metadata is an owned value with a lifetime of a borrowed byte slice, it's possible to have future optimizations where the metadata doesn't need to be copied around (very expensive operation).
Diffstat (limited to 'src/librustc/metadata/creader.rs')
| -rw-r--r-- | src/librustc/metadata/creader.rs | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/librustc/metadata/creader.rs b/src/librustc/metadata/creader.rs index 955ba54a404..4741281e6c2 100644 --- a/src/librustc/metadata/creader.rs +++ b/src/librustc/metadata/creader.rs @@ -267,9 +267,9 @@ fn resolve_crate(e: @mut Env, dylib, rlib, metadata } = load_ctxt.load_library_crate(); - let attrs = decoder::get_crate_attributes(metadata); + let attrs = decoder::get_crate_attributes(metadata.as_slice()); let pkgid = attr::find_pkgid(attrs).unwrap(); - let hash = decoder::get_crate_hash(metadata); + let hash = decoder::get_crate_hash(metadata.as_slice()); // Claim this crate number and cache it let cnum = e.next_crate_num; @@ -282,7 +282,7 @@ fn resolve_crate(e: @mut Env, e.next_crate_num += 1; // Now resolve the crates referenced by this crate - let cnum_map = resolve_crate_deps(e, metadata); + let cnum_map = resolve_crate_deps(e, metadata.as_slice()); let cmeta = @cstore::crate_metadata { name: name, @@ -307,7 +307,7 @@ fn resolve_crate(e: @mut Env, } // Go through the crate metadata and load any crates that it references -fn resolve_crate_deps(e: @mut Env, cdata: @~[u8]) -> cstore::cnum_map { +fn resolve_crate_deps(e: @mut Env, cdata: &[u8]) -> cstore::cnum_map { debug!("resolving deps of external crate"); // The map from crate numbers in the crate we're resolving to local crate // numbers |
