@@ -941,7 +941,7 @@ internal static bool MoveToLast(IntPtr root, ref StructList<CursorItem> stack)
941
941
internal IntPtr CloneNode ( IntPtr nodePtr )
942
942
{
943
943
var size = NodeUtils12 . NodeSize ( nodePtr ) ;
944
- var newNode = _allocator . Allocate ( ( IntPtr ) size ) ;
944
+ var newNode = _allocator . Allocate ( size ) ;
945
945
TreeNodeUtils . CopyMemory ( nodePtr , newNode , size ) ;
946
946
ref var header = ref NodeUtils12 . Ptr2NodeHeader ( newNode ) ;
947
947
header . _referenceCount = 1 ;
@@ -970,9 +970,9 @@ void ReferenceAllChildren(IntPtr node)
970
970
{
971
971
if ( NodeUtils12 . Ptr2NodeHeader ( node ) . IsNodeLeaf ) return ;
972
972
var ptrs = NodeUtils12 . GetBranchValuePtrs ( node ) ;
973
- for ( var i = 0 ; i < ptrs . Length ; i ++ )
973
+ foreach ( var t in ptrs )
974
974
{
975
- NodeUtils12 . Reference ( ptrs [ i ] ) ;
975
+ NodeUtils12 . Reference ( t ) ;
976
976
}
977
977
}
978
978
@@ -991,18 +991,18 @@ internal void Dereference(IntPtr node)
991
991
if ( nodeHeader . HasLongKeys )
992
992
{
993
993
var ptrs = NodeUtils12 . GetLongKeyPtrs ( node ) ;
994
- for ( var i = 0 ; i < ptrs . Length ; i ++ )
994
+ foreach ( var t in ptrs )
995
995
{
996
- FreeLongKey ( ptrs [ i ] ) ;
996
+ FreeLongKey ( t ) ;
997
997
}
998
998
}
999
999
1000
1000
if ( ! nodeHeader . IsNodeLeaf )
1001
1001
{
1002
1002
var ptrs = NodeUtils12 . GetBranchValuePtrs ( node ) ;
1003
- for ( var i = 0 ; i < ptrs . Length ; i ++ )
1003
+ foreach ( var t in ptrs )
1004
1004
{
1005
- Dereference ( ptrs [ i ] ) ;
1005
+ Dereference ( t ) ;
1006
1006
}
1007
1007
}
1008
1008
@@ -1057,7 +1057,7 @@ void WritePtrInNode(in CursorItem stackItem, IntPtr newNode)
1057
1057
ptr = newNode ;
1058
1058
}
1059
1059
1060
- internal unsafe bool FindExact ( RootNode12 rootNode , ref StructList < CursorItem > stack , ReadOnlySpan < byte > key )
1060
+ internal static unsafe bool FindExact ( RootNode12 rootNode , ref StructList < CursorItem > stack , ReadOnlySpan < byte > key )
1061
1061
{
1062
1062
stack . Clear ( ) ;
1063
1063
var top = rootNode . Root ;
@@ -1083,15 +1083,15 @@ internal unsafe bool FindExact(RootNode12 rootNode, ref StructList<CursorItem> s
1083
1083
return false ;
1084
1084
}
1085
1085
1086
- var comp = key . Slice ( 0 , header . _keyPrefixLength ) . SequenceCompareTo ( prefix ) ;
1086
+ var comp = key [ .. header . _keyPrefixLength ] . SequenceCompareTo ( prefix ) ;
1087
1087
if ( comp != 0 )
1088
1088
{
1089
1089
stack . Clear ( ) ;
1090
1090
return false ;
1091
1091
}
1092
1092
}
1093
1093
1094
- var keyRest = key . Slice ( header . _keyPrefixLength ) ;
1094
+ var keyRest = key [ header . _keyPrefixLength .. ] ;
1095
1095
if ( header . HasLongKeys )
1096
1096
{
1097
1097
var keys = NodeUtils12 . GetLongKeyPtrs ( top ) ;
@@ -1439,14 +1439,14 @@ internal static bool IsKeyPrefix(IntPtr nodePtr, int idx, ReadOnlySpan<byte> pre
1439
1439
if ( header . HasLongKeys )
1440
1440
{
1441
1441
var keys = NodeUtils12 . GetLongKeyPtrs ( nodePtr ) ;
1442
- return TreeNodeUtils . IsPrefix ( NodeUtils12 . LongKeyPtrToSpan ( keys [ idx ] ) , prefix ) ;
1442
+ return ( ( ReadOnlySpan < byte > ) NodeUtils12 . LongKeyPtrToSpan ( keys [ idx ] ) ) . StartsWith ( prefix ) ;
1443
1443
}
1444
1444
else
1445
1445
{
1446
1446
var keyOffsets = NodeUtils12 . GetKeySpans ( nodePtr , out var keySuffixes ) ;
1447
1447
var ofs = keyOffsets [ idx ] ;
1448
1448
var lenSuffix = keyOffsets [ idx + 1 ] - ofs ;
1449
- return TreeNodeUtils . IsPrefix ( keySuffixes . Slice ( ofs , lenSuffix ) , prefix ) ;
1449
+ return ( ( ReadOnlySpan < byte > ) keySuffixes . Slice ( ofs , lenSuffix ) ) . StartsWith ( prefix ) ;
1450
1450
}
1451
1451
}
1452
1452
0 commit comments