about summary refs log tree commit diff
diff options
context:
space:
mode:
authorNicholas Nethercote <nnethercote@mozilla.com>2016-10-21 10:31:53 +1100
committerNicholas Nethercote <nnethercote@mozilla.com>2016-10-21 12:58:06 +1100
commita935481ae9052d42c39af1d71c8e8e64750c9e02 (patch)
tree1ac70607290d973353b44629b791b50011466ace
parent0c429872a32c3005cf2b347025163361218634a4 (diff)
downloadrust-a935481ae9052d42c39af1d71c8e8e64750c9e02.tar.gz
rust-a935481ae9052d42c39af1d71c8e8e64750c9e02.zip
Avoid an unnecessary clone in `macro_parser::parse`.
This avoids ~800,000 allocations in html5ever.
-rw-r--r--src/libsyntax/ext/tt/macro_parser.rs2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/libsyntax/ext/tt/macro_parser.rs b/src/libsyntax/ext/tt/macro_parser.rs
index ef2e466a043..a664e115ce4 100644
--- a/src/libsyntax/ext/tt/macro_parser.rs
+++ b/src/libsyntax/ext/tt/macro_parser.rs
@@ -425,8 +425,8 @@ pub fn parse(sess: &ParseSess,
                         cur_eis.push(ei);
                     }
                     TokenTree::Token(_, ref t) => {
-                        let mut ei_t = ei.clone();
                         if token_name_eq(t,&tok) {
+                            let mut ei_t = ei.clone();
                             ei_t.idx += 1;
                             next_eis.push(ei_t);
                         }