diff options
| author | Tim Chevalier <chevalier@alum.wellesley.edu> | 2013-01-11 15:07:48 -0800 |
|---|---|---|
| committer | Tim Chevalier <chevalier@alum.wellesley.edu> | 2013-01-14 15:49:53 -0800 |
| commit | a4dc65baa1caa2ef3e78b3fa8e330dda99d1e752 (patch) | |
| tree | c6cd09c3f05c8f00bb358d938aa1305894cdf96d /src/librustc/metadata | |
| parent | 0ca369e9dc5f6ea0ba0c38d047e8d931badfc82c (diff) | |
syntax/rustc: Eliminate some bad copies
r=pcwalton
Diffstat (limited to 'src/librustc/metadata')
| -rw-r--r-- | src/librustc/metadata/common.rs | 2 | ||||
| -rw-r--r-- | src/librustc/metadata/creader.rs | 3 | ||||
| -rw-r--r-- | src/librustc/metadata/encoder.rs | 18 | ||||
| -rw-r--r-- | src/librustc/metadata/loader.rs | 2 |
4 files changed, 12 insertions, 13 deletions
diff --git a/src/librustc/metadata/common.rs b/src/librustc/metadata/common.rs index e6a367ac1a8..a9094cf6a48 100644 --- a/src/librustc/metadata/common.rs +++ b/src/librustc/metadata/common.rs @@ -152,5 +152,5 @@ const tag_lang_items_item: uint = 0x73; const tag_lang_items_item_id: uint = 0x74; const tag_lang_items_item_node_id: uint = 0x75; -type link_meta = {name: ~str, vers: ~str, extras_hash: ~str}; +type link_meta = {name: @str, vers: @str, extras_hash: @str}; diff --git a/src/librustc/metadata/creader.rs b/src/librustc/metadata/creader.rs index 46275164162..03bd63b8bf7 100644 --- a/src/librustc/metadata/creader.rs +++ b/src/librustc/metadata/creader.rs @@ -191,8 +191,7 @@ fn visit_item(e: env, i: @ast::item) { fn metas_with(+ident: ~str, +key: ~str, +metas: ~[@ast::meta_item]) -> ~[@ast::meta_item] { - // XXX: Bad copies. - let name_items = attr::find_meta_items_by_name(copy metas, copy key); + let name_items = attr::find_meta_items_by_name(metas, key); if name_items.is_empty() { vec::append_one(metas, attr::mk_name_value_item_str(key, ident)) } else { diff --git a/src/librustc/metadata/encoder.rs b/src/librustc/metadata/encoder.rs index 6d131a074eb..05000ac85e4 100644 --- a/src/librustc/metadata/encoder.rs +++ b/src/librustc/metadata/encoder.rs @@ -881,7 +881,7 @@ fn encode_info_for_foreign_item(ecx: @encode_ctxt, } fn encode_info_for_items(ecx: @encode_ctxt, ebml_w: writer::Encoder, - crate: @crate) -> ~[entry<int>] { + crate: &crate) -> ~[entry<int>] { let index = @mut ~[]; ebml_w.start_tag(tag_items_data); index.push({val: crate_node_id, pos: ebml_w.writer.tell()}); @@ -1021,20 +1021,20 @@ fn encode_attributes(ebml_w: writer::Encoder, attrs: ~[attribute]) { // metadata that Rust cares about for linking crates. This attribute requires // 'name' and 'vers' items, so if the user didn't provide them we will throw // them in anyway with default values. -fn synthesize_crate_attrs(ecx: @encode_ctxt, crate: @crate) -> ~[attribute] { +fn synthesize_crate_attrs(ecx: @encode_ctxt, crate: &crate) -> ~[attribute] { fn synthesize_link_attr(ecx: @encode_ctxt, +items: ~[@meta_item]) -> attribute { - assert (ecx.link_meta.name != ~""); - assert (ecx.link_meta.vers != ~""); + assert ecx.link_meta.name.is_not_empty(); + assert ecx.link_meta.vers.is_not_empty(); let name_item = attr::mk_name_value_item_str(~"name", - /*bad*/copy ecx.link_meta.name); + ecx.link_meta.name.to_owned()); let vers_item = attr::mk_name_value_item_str(~"vers", - /*bad*/copy ecx.link_meta.vers); + ecx.link_meta.vers.to_owned()); let other_items = { @@ -1156,7 +1156,7 @@ fn encode_crate_dep(ecx: @encode_ctxt, ebml_w: writer::Encoder, ebml_w.end_tag(); } -fn encode_hash(ebml_w: writer::Encoder, hash: ~str) { +fn encode_hash(ebml_w: writer::Encoder, hash: &str) { ebml_w.start_tag(tag_crate_hash); ebml_w.writer.write(str::to_bytes(hash)); ebml_w.end_tag(); @@ -1169,7 +1169,7 @@ const metadata_encoding_version : &[u8] = &[0x72, //'r' as u8, 0x74, //'t' as u8, 0, 0, 0, 1 ]; -fn encode_metadata(parms: encode_parms, crate: @crate) -> ~[u8] { +fn encode_metadata(parms: encode_parms, crate: &crate) -> ~[u8] { let wr = @io::BytesWriter(); let stats = {mut inline_bytes: 0, @@ -1197,7 +1197,7 @@ fn encode_metadata(parms: encode_parms, crate: @crate) -> ~[u8] { let ebml_w = writer::Encoder(wr as io::Writer); - encode_hash(ebml_w, /*bad*/copy ecx.link_meta.extras_hash); + encode_hash(ebml_w, ecx.link_meta.extras_hash); let mut i = wr.pos; let crate_attrs = synthesize_crate_attrs(ecx, crate); diff --git a/src/librustc/metadata/loader.rs b/src/librustc/metadata/loader.rs index 58c9a1b90f2..46f41b07107 100644 --- a/src/librustc/metadata/loader.rs +++ b/src/librustc/metadata/loader.rs @@ -77,7 +77,7 @@ fn load_library_crate(cx: ctxt) -> {ident: ~str, data: @~[u8]} { } fn find_library_crate(cx: ctxt) -> Option<{ident: ~str, data: @~[u8]}> { - attr::require_unique_names(cx.diag, /*bad*/copy cx.metas); + attr::require_unique_names(cx.diag, cx.metas); find_library_crate_aux(cx, libname(cx), cx.filesearch) } |
