about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJohn Kåre Alsaker <john.kare.alsaker@gmail.com>2018-03-14 23:23:46 +0100
committerJohn Kåre Alsaker <john.kare.alsaker@gmail.com>2018-03-17 23:01:54 +0100
commit1551ef181267ea1e5db534b247148aba6bd14970 (patch)
treed6110fce358c98fd2ed87a8e46d3ab7fdcf020af
parent1dbc84d0066c4689a1e3de21f5a22d87e74a2ac1 (diff)
downloadrust-1551ef181267ea1e5db534b247148aba6bd14970.tar.gz
rust-1551ef181267ea1e5db534b247148aba6bd14970.zip
Don't get the global lock in the fast case
-rw-r--r--src/librustc/ty/context.rs6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/librustc/ty/context.rs b/src/librustc/ty/context.rs
index fd3465f59eb..37a539cfff4 100644
--- a/src/librustc/ty/context.rs
+++ b/src/librustc/ty/context.rs
@@ -161,12 +161,12 @@ impl<'gcx: 'tcx, 'tcx> CtxtInterners<'tcx> {
                  -> Ty<'tcx> {
         let ty = {
             let mut interner = self.type_.borrow_mut();
-            let global_interner = global_interners.map(|interners| {
-                interners.type_.borrow_mut()
-            });
             if let Some(&Interned(ty)) = interner.get(&st) {
                 return ty;
             }
+            let global_interner = global_interners.map(|interners| {
+                interners.type_.borrow_mut()
+            });
             if let Some(ref interner) = global_interner {
                 if let Some(&Interned(ty)) = interner.get(&st) {
                     return ty;