@@ -1306,9 +1306,14 @@ where
1306
1306
Q : Hash + Equivalent < K > + ?Sized ,
1307
1307
{
1308
1308
// 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
1312
1317
}
1313
1318
}
1314
1319
@@ -1337,22 +1342,14 @@ where
1337
1342
Q : Hash + Equivalent < K > + ?Sized ,
1338
1343
{
1339
1344
// 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 ( ) {
1354
1346
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
1356
1353
}
1357
1354
}
1358
1355
@@ -1385,9 +1382,14 @@ where
1385
1382
Q : Hash + Equivalent < K > + ?Sized ,
1386
1383
{
1387
1384
// 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
1391
1393
}
1392
1394
}
1393
1395
@@ -1415,7 +1417,12 @@ where
1415
1417
where
1416
1418
Q : Hash + Equivalent < K > + ?Sized ,
1417
1419
{
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
+ }
1419
1426
}
1420
1427
1421
1428
/// Returns a mutable reference to the value corresponding to the key.
@@ -1447,22 +1454,14 @@ where
1447
1454
Q : Hash + Equivalent < K > + ?Sized ,
1448
1455
{
1449
1456
// 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 ( ) {
1464
1458
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
1466
1465
}
1467
1466
}
1468
1467
0 commit comments