about summary refs log tree commit diff
path: root/src/librustdoc/attr_parser.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/librustdoc/attr_parser.rs')
-rw-r--r--src/librustdoc/attr_parser.rs5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/librustdoc/attr_parser.rs b/src/librustdoc/attr_parser.rs
index 0beb651afc4..bb9ba93cbe0 100644
--- a/src/librustdoc/attr_parser.rs
+++ b/src/librustdoc/attr_parser.rs
@@ -65,9 +65,10 @@ fn doc_metas(
 
 pub fn parse_crate(attrs: ~[ast::attribute]) -> CrateAttrs {
     let link_metas = attr::find_linkage_metas(attrs);
+    let name = attr::last_meta_item_value_str_by_name(link_metas, ~"name");
 
     CrateAttrs {
-        name: attr::last_meta_item_value_str_by_name(link_metas, ~"name")
+        name: name.map(|s| copy **s)
     }
 }
 
@@ -97,7 +98,7 @@ fn should_not_extract_crate_name_if_no_name_value_in_link_attribute() {
 
 pub fn parse_desc(attrs: ~[ast::attribute]) -> Option<~str> {
     let doc_strs = do doc_metas(attrs).filter_mapped |meta| {
-        attr::get_meta_item_value_str(*meta)
+        attr::get_meta_item_value_str(*meta).map(|s| copy **s)
     };
     if doc_strs.is_empty() {
         None