@@ -397,6 +397,7 @@ impl<BorrowType, K, V, Type> NodeRef<BorrowType, K, V, Type> {
397397
398398    /// Borrows a view into the values stored in the node. 
399399/// The caller must ensure that the node is not the shared root. 
400+ /// This function is not public, so doesn't have to support shared roots like `keys` does. 
400401fn  vals ( & self )  -> & [ V ]  { 
401402        self . reborrow ( ) . into_val_slice ( ) 
402403    } 
@@ -514,6 +515,7 @@ impl<'a, K, V, Type> NodeRef<marker::Mut<'a>, K, V, Type> {
514515    } 
515516
516517    /// The caller must ensure that the node is not the shared root. 
518+ /// This function is not public, so doesn't have to support shared roots like `keys` does. 
517519fn  keys_mut ( & mut  self )  -> & mut  [ K ]  { 
518520        unsafe  {  self . reborrow_mut ( ) . into_key_slice_mut ( )  } 
519521    } 
@@ -590,19 +592,13 @@ impl<'a, K: 'a, V: 'a, Type> NodeRef<marker::Mut<'a>, K, V, Type> {
590592    } 
591593
592594    fn  into_key_slice_mut ( mut  self )  -> & ' a  mut  [ K ]  { 
593-         // Same as for `into_key_slice` above, we try to avoid a run-time check. 
594-         if  ( mem:: align_of :: < NodeHeader < K ,  V ,  K > > ( )  > mem:: align_of :: < NodeHeader < K ,  V > > ( ) 
595-             || mem:: size_of :: < NodeHeader < K ,  V ,  K > > ( )  != mem:: size_of :: < NodeHeader < K ,  V > > ( ) ) 
596-             && self . is_shared_root ( ) 
597-         { 
598-             & mut  [ ] 
599-         }  else  { 
600-             unsafe  { 
601-                 slice:: from_raw_parts_mut ( 
602-                     MaybeUninit :: first_ptr_mut ( & mut  ( * self . as_leaf_mut ( ) ) . keys ) , 
603-                     self . len ( ) , 
604-                 ) 
605-             } 
595+         debug_assert ! ( !self . is_shared_root( ) ) ; 
596+         // We cannot be the shared root, so `as_leaf_mut` is okay. 
597+         unsafe  { 
598+             slice:: from_raw_parts_mut ( 
599+                 MaybeUninit :: first_ptr_mut ( & mut  ( * self . as_leaf_mut ( ) ) . keys ) , 
600+                 self . len ( ) , 
601+             ) 
606602        } 
607603    } 
608604
0 commit comments