diff --git a/src/ZoneTree/Segments/Disk/MultiSectorDiskSegment.cs b/src/ZoneTree/Segments/Disk/MultiSectorDiskSegment.cs index 3152c0a..bf8356b 100644 --- a/src/ZoneTree/Segments/Disk/MultiSectorDiskSegment.cs +++ b/src/ZoneTree/Segments/Disk/MultiSectorDiskSegment.cs @@ -308,19 +308,47 @@ public sealed class MultiSectorDiskSegment : IDiskSegment : IDiskSegment(this); } - public TValue GetValue(int index) - { - var off = 0; - var sectorIndex = 0; - while (off + Sectors[sectorIndex].Length <= index) - { - off += Sectors[sectorIndex].Length; - ++sectorIndex; - } - var localIndex = index - off; - return Sectors[sectorIndex].GetValue(localIndex); - } - public void InitSparseArray(int size) { } diff --git a/src/ZoneTree/Segments/Disk/MultiSectorDiskSegmentCreator.cs b/src/ZoneTree/Segments/Disk/MultiSectorDiskSegmentCreator.cs index 89ce0da..d0e5aee 100644 --- a/src/ZoneTree/Segments/Disk/MultiSectorDiskSegmentCreator.cs +++ b/src/ZoneTree/Segments/Disk/MultiSectorDiskSegmentCreator.cs @@ -155,10 +155,10 @@ public sealed class MultiSectorDiskSegmentCreator : IDiskSegmentCr { var len = Sectors.Count * 2; bw.Write(len); - for (var i = 0; i < len; i += 2) + for (var i = 0; i < len; ++i) { - var a = i / 2; - var b = a + 1; + var a = i++; + var b = i; var k1 = SectorKeys[a]; var bytes = KeySerializer.Serialize(k1); bw.Write(bytes.Length); @@ -175,10 +175,10 @@ public sealed class MultiSectorDiskSegmentCreator : IDiskSegmentCr { var len = Sectors.Count * 2; bw.Write(len); - for (var i = 0; i < len; i += 2) + for (var i = 0; i < len; ++i) { - var a = i / 2; - var b = a + 1; + var a = i++; + var b = i; var v1 = SectorValues[a]; var bytes = ValueSerializer.Serialize(v1); bw.Write(bytes.Length);