@@ -811,11 +811,10 @@ impl<'a, K: 'a + Eq + Hash, V: 'a, S: 'a + BuildHasher + Clone> Map<'a, K, V, S>
811
811
812
812
if let Some ( ( kptr, vptr) ) = shard. get_key_value ( & key) {
813
813
unsafe {
814
- let kptr = util:: change_lifetime_const ( kptr) ;
814
+ let kptr: * const K = kptr;
815
+ let vptr: * mut V = vptr. as_ptr ( ) ;
815
816
816
- let vptr = & mut * vptr. as_ptr ( ) ;
817
-
818
- if f ( kptr, vptr) {
817
+ if f ( & * kptr, & mut * vptr) {
819
818
shard. remove_entry ( key) . map ( |( k, v) | ( k, v. into_inner ( ) ) )
820
819
} else {
821
820
None
@@ -847,11 +846,9 @@ impl<'a, K: 'a + Eq + Hash, V: 'a, S: 'a + BuildHasher + Clone> Map<'a, K, V, S>
847
846
848
847
if let Some ( ( kptr, vptr) ) = shard. get_key_value ( key) {
849
848
unsafe {
850
- let kptr = util:: change_lifetime_const ( kptr) ;
851
-
852
- let vptr = util:: change_lifetime_const ( vptr) ;
853
-
854
- Some ( Ref :: new ( shard, kptr, vptr. get ( ) ) )
849
+ let kptr: * const K = kptr;
850
+ let vptr: * const V = vptr. get ( ) ;
851
+ Some ( Ref :: new ( shard, kptr, vptr) )
855
852
}
856
853
} else {
857
854
None
@@ -871,10 +868,8 @@ impl<'a, K: 'a + Eq + Hash, V: 'a, S: 'a + BuildHasher + Clone> Map<'a, K, V, S>
871
868
872
869
if let Some ( ( kptr, vptr) ) = shard. get_key_value ( key) {
873
870
unsafe {
874
- let kptr = util:: change_lifetime_const ( kptr) ;
875
-
876
- let vptr = & mut * vptr. as_ptr ( ) ;
877
-
871
+ let kptr: * const K = kptr;
872
+ let vptr: * mut V = vptr. as_ptr ( ) ;
878
873
Some ( RefMut :: new ( shard, kptr, vptr) )
879
874
}
880
875
} else {
@@ -898,10 +893,8 @@ impl<'a, K: 'a + Eq + Hash, V: 'a, S: 'a + BuildHasher + Clone> Map<'a, K, V, S>
898
893
899
894
if let Some ( ( kptr, vptr) ) = shard. get_key_value ( key) {
900
895
unsafe {
901
- let kptr = util:: change_lifetime_const ( kptr) ;
902
-
903
- let vptr = & mut * vptr. as_ptr ( ) ;
904
-
896
+ let kptr: * const K = kptr;
897
+ let vptr: * const V = vptr. get ( ) ;
905
898
TryResult :: Present ( Ref :: new ( shard, kptr, vptr) )
906
899
}
907
900
} else {
@@ -925,10 +918,8 @@ impl<'a, K: 'a + Eq + Hash, V: 'a, S: 'a + BuildHasher + Clone> Map<'a, K, V, S>
925
918
926
919
if let Some ( ( kptr, vptr) ) = shard. get_key_value ( key) {
927
920
unsafe {
928
- let kptr = util:: change_lifetime_const ( kptr) ;
929
-
930
- let vptr = & mut * vptr. as_ptr ( ) ;
931
-
921
+ let kptr: * const K = kptr;
922
+ let vptr: * mut V = vptr. as_ptr ( ) ;
932
923
TryResult :: Present ( RefMut :: new ( shard, kptr, vptr) )
933
924
}
934
925
} else {
@@ -992,12 +983,12 @@ impl<'a, K: 'a + Eq + Hash, V: 'a, S: 'a + BuildHasher + Clone> Map<'a, K, V, S>
992
983
993
984
if let Some ( ( kptr, vptr) ) = shard. get_key_value ( & key) {
994
985
unsafe {
995
- let kptr = util :: change_lifetime_const ( kptr) ;
996
- let vptr = & mut * vptr. as_ptr ( ) ;
986
+ let kptr: * const K = kptr;
987
+ let vptr: * mut V = vptr. as_ptr ( ) ;
997
988
Entry :: Occupied ( OccupiedEntry :: new ( shard, key, ( kptr, vptr) ) )
998
989
}
999
990
} else {
1000
- Entry :: Vacant ( VacantEntry :: new ( shard, key) )
991
+ unsafe { Entry :: Vacant ( VacantEntry :: new ( shard, key) ) }
1001
992
}
1002
993
}
1003
994
@@ -1013,9 +1004,8 @@ impl<'a, K: 'a + Eq + Hash, V: 'a, S: 'a + BuildHasher + Clone> Map<'a, K, V, S>
1013
1004
1014
1005
if let Some ( ( kptr, vptr) ) = shard. get_key_value ( & key) {
1015
1006
unsafe {
1016
- let kptr = util:: change_lifetime_const ( kptr) ;
1017
-
1018
- let vptr = & mut * vptr. as_ptr ( ) ;
1007
+ let kptr: * const K = kptr;
1008
+ let vptr: * mut V = vptr. as_ptr ( ) ;
1019
1009
1020
1010
Some ( Entry :: Occupied ( OccupiedEntry :: new (
1021
1011
shard,
@@ -1024,7 +1014,7 @@ impl<'a, K: 'a + Eq + Hash, V: 'a, S: 'a + BuildHasher + Clone> Map<'a, K, V, S>
1024
1014
) ) )
1025
1015
}
1026
1016
} else {
1027
- Some ( Entry :: Vacant ( VacantEntry :: new ( shard, key) ) )
1017
+ unsafe { Some ( Entry :: Vacant ( VacantEntry :: new ( shard, key) ) ) }
1028
1018
}
1029
1019
}
1030
1020
0 commit comments