about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/librustc/dep_graph/graph.rs9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/librustc/dep_graph/graph.rs b/src/librustc/dep_graph/graph.rs
index c487fc963ca..34cb1d2a6d7 100644
--- a/src/librustc/dep_graph/graph.rs
+++ b/src/librustc/dep_graph/graph.rs
@@ -235,10 +235,13 @@ impl DepGraph {
                                           debug_str_gen: F)
         where F: FnOnce() -> String
     {
-        let mut dep_node_debug = self.data.as_ref().unwrap().dep_node_debug.borrow_mut();
+        let dep_node_debug = &self.data.as_ref().unwrap().dep_node_debug;
 
-        dep_node_debug.entry(dep_node)
-                      .or_insert_with(debug_str_gen);
+        if dep_node_debug.borrow().contains_key(&dep_node) {
+            return
+        }
+        let debug_str = debug_str_gen();
+        dep_node_debug.borrow_mut().insert(dep_node, debug_str);
     }
 
     pub(super) fn dep_node_debug_str(&self, dep_node: DepNode) -> Option<String> {