about summary refs log tree commit diff
path: root/src/librustc/metadata/creader.rs
diff options
context:
space:
mode:
authorAlex Crichton <alex@alexcrichton.com>2013-12-18 14:10:28 -0800
committerAlex Crichton <alex@alexcrichton.com>2013-12-19 17:08:05 -0800
commit73fceca7d6140fb208fa701074c4b25a4dd260c6 (patch)
tree4d47a7257ec5c7b3f90ef432a81052521a4742f2 /src/librustc/metadata/creader.rs
parent6d2e61bc6cadcfde6952913b7e170ded57f7b0dd (diff)
downloadrust-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.rs8
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