@@ -1306,9 +1306,14 @@ where
13061306 Q : Hash + Equivalent < K > + ?Sized ,
13071307 {
13081308 // Avoid `Option::map` because it bloats LLVM IR.
1309- match self . get_inner ( k) {
1310- Some ( ( _, v) ) => Some ( v) ,
1311- None => None ,
1309+ if !self . table . is_empty ( ) {
1310+ let hash = make_hash :: < Q , S > ( & self . hash_builder , k) ;
1311+ match self . table . get ( hash, equivalent_key ( k) ) {
1312+ Some ( ( _, v) ) => Some ( v) ,
1313+ None => None ,
1314+ }
1315+ } else {
1316+ None
13121317 }
13131318 }
13141319
@@ -1337,22 +1342,14 @@ where
13371342 Q : Hash + Equivalent < K > + ?Sized ,
13381343 {
13391344 // Avoid `Option::map` because it bloats LLVM IR.
1340- match self . get_inner ( k) {
1341- Some ( ( key, value) ) => Some ( ( key, value) ) ,
1342- None => None ,
1343- }
1344- }
1345-
1346- #[ inline]
1347- fn get_inner < Q > ( & self , k : & Q ) -> Option < & ( K , V ) >
1348- where
1349- Q : Hash + Equivalent < K > + ?Sized ,
1350- {
1351- if self . table . is_empty ( ) {
1352- None
1353- } else {
1345+ if !self . table . is_empty ( ) {
13541346 let hash = make_hash :: < Q , S > ( & self . hash_builder , k) ;
1355- self . table . get ( hash, equivalent_key ( k) )
1347+ match self . table . get ( hash, equivalent_key ( k) ) {
1348+ Some ( ( key, value) ) => Some ( ( key, value) ) ,
1349+ None => None ,
1350+ }
1351+ } else {
1352+ None
13561353 }
13571354 }
13581355
@@ -1385,9 +1382,14 @@ where
13851382 Q : Hash + Equivalent < K > + ?Sized ,
13861383 {
13871384 // Avoid `Option::map` because it bloats LLVM IR.
1388- match self . get_inner_mut ( k) {
1389- Some ( & mut ( ref key, ref mut value) ) => Some ( ( key, value) ) ,
1390- None => None ,
1385+ if !self . table . is_empty ( ) {
1386+ let hash = make_hash :: < Q , S > ( & self . hash_builder , k) ;
1387+ match self . table . get_mut ( hash, equivalent_key ( k) ) {
1388+ Some ( & mut ( ref key, ref mut value) ) => Some ( ( key, value) ) ,
1389+ None => None ,
1390+ }
1391+ } else {
1392+ None
13911393 }
13921394 }
13931395
@@ -1415,7 +1417,12 @@ where
14151417 where
14161418 Q : Hash + Equivalent < K > + ?Sized ,
14171419 {
1418- self . get_inner ( k) . is_some ( )
1420+ if !self . table . is_empty ( ) {
1421+ let hash = make_hash :: < Q , S > ( & self . hash_builder , k) ;
1422+ self . table . get ( hash, equivalent_key ( k) ) . is_some ( )
1423+ } else {
1424+ false
1425+ }
14191426 }
14201427
14211428 /// Returns a mutable reference to the value corresponding to the key.
@@ -1447,22 +1454,14 @@ where
14471454 Q : Hash + Equivalent < K > + ?Sized ,
14481455 {
14491456 // Avoid `Option::map` because it bloats LLVM IR.
1450- match self . get_inner_mut ( k) {
1451- Some ( & mut ( _, ref mut v) ) => Some ( v) ,
1452- None => None ,
1453- }
1454- }
1455-
1456- #[ inline]
1457- fn get_inner_mut < Q > ( & mut self , k : & Q ) -> Option < & mut ( K , V ) >
1458- where
1459- Q : Hash + Equivalent < K > + ?Sized ,
1460- {
1461- if self . table . is_empty ( ) {
1462- None
1463- } else {
1457+ if !self . table . is_empty ( ) {
14641458 let hash = make_hash :: < Q , S > ( & self . hash_builder , k) ;
1465- self . table . get_mut ( hash, equivalent_key ( k) )
1459+ match self . table . get_mut ( hash, equivalent_key ( k) ) {
1460+ Some ( & mut ( _, ref mut v) ) => Some ( v) ,
1461+ None => None ,
1462+ }
1463+ } else {
1464+ None
14661465 }
14671466 }
14681467
0 commit comments