]> git.lizzy.rs Git - rust.git/commitdiff
avoid extra clone
authorNiko Matsakis <niko@alum.mit.edu>
Sat, 4 Jun 2016 00:39:43 +0000 (20:39 -0400)
committerNiko Matsakis <niko@alum.mit.edu>
Sat, 4 Jun 2016 00:39:43 +0000 (20:39 -0400)
src/librustc/dep_graph/raii.rs

index 92cecabaa182f86cadf45b1488504d9ea5245f86..c43d493d176757b023c0b6a73435bf4b999a4d94 100644 (file)
 
 pub struct DepTask<'graph> {
     data: &'graph DepGraphThreadData,
-    key: DepNode<DefId>,
+    key: Option<DepNode<DefId>>,
 }
 
 impl<'graph> DepTask<'graph> {
     pub fn new(data: &'graph DepGraphThreadData, key: DepNode<DefId>)
                -> DepTask<'graph> {
         data.enqueue(DepMessage::PushTask(key.clone()));
-        DepTask { data: data, key: key }
+        DepTask { data: data, key: Some(key) }
     }
 }
 
 impl<'graph> Drop for DepTask<'graph> {
     fn drop(&mut self) {
-        self.data.enqueue(DepMessage::PopTask(self.key.clone()));
+        self.data.enqueue(DepMessage::PopTask(self.key.take().unwrap()));
     }
 }