Skip to content

Commit 2bcdece

Browse files
committed
Fixes
1 parent 838201c commit 2bcdece

File tree

2 files changed

+13
-14
lines changed

2 files changed

+13
-14
lines changed

src/Index.zig

+3-3
Original file line numberDiff line numberDiff line change
@@ -227,7 +227,7 @@ fn loadSegment(self: *Self, segment_id: SegmentID) !void {
227227
fn loadSegments(self: *Self) !void {
228228
const segment_ids = filefmt.readIndexFile(self.data_dir, self.allocator) catch |err| {
229229
if (err == error.FileNotFound and self.options.create) {
230-
try filefmt.writeIndexFile(self.data_dir, std.ArrayList(SegmentID).init(self.allocator));
230+
try filefmt.writeIndexFile(self.data_dir, &[_]SegmentID{});
231231
return;
232232
}
233233
return err;
@@ -262,7 +262,7 @@ fn doCheckpoint(self: *Self) !bool {
262262

263263
try ids.append(dest.data.id);
264264

265-
try filefmt.writeIndexFile(self.data_dir, ids);
265+
try filefmt.writeIndexFile(self.data_dir, ids.items);
266266

267267
self.segments_lock.lock();
268268
defer self.segments_lock.unlock();
@@ -448,7 +448,7 @@ fn finishFileSegmentMerge(self: *Self, merge: FileSegmentList.PreparedMerge) !vo
448448

449449
std.debug.assert(std.sort.isSorted(SegmentID, ids.items, {}, SegmentID.cmp));
450450

451-
try filefmt.writeIndexFile(self.data_dir, ids);
451+
try filefmt.writeIndexFile(self.data_dir, ids.items);
452452

453453
defer self.file_segments.destroySegment(merge.sources.node1);
454454
defer self.file_segments.destroySegment(merge.sources.node2);

src/filefmt.zig

+10-11
Original file line numberDiff line numberDiff line change
@@ -502,7 +502,7 @@ const IndexFileHeader = struct {
502502
}
503503
};
504504

505-
pub fn writeIndexFile(dir: std.fs.Dir, segments: std.ArrayList(SegmentVersion)) !void {
505+
pub fn writeIndexFile(dir: std.fs.Dir, segments: []const SegmentVersion) !void {
506506
log.info("writing index file {s}", .{index_file_name});
507507

508508
var file = try dir.atomicFile(index_file_name, .{});
@@ -512,7 +512,7 @@ pub fn writeIndexFile(dir: std.fs.Dir, segments: std.ArrayList(SegmentVersion))
512512
const writer = buffered_writer.writer();
513513

514514
try msgpack.encode(writer, IndexFileHeader, .{});
515-
try msgpack.encode(writer, []SegmentVersion, segments.items);
515+
try msgpack.encode(writer, []const SegmentVersion, segments);
516516

517517
try buffered_writer.flush();
518518

@@ -522,7 +522,7 @@ pub fn writeIndexFile(dir: std.fs.Dir, segments: std.ArrayList(SegmentVersion))
522522

523523
log.info("wrote index file {s} (segments = {})", .{
524524
index_file_name,
525-
segments.items.len,
525+
segments.len,
526526
});
527527
}
528528

@@ -547,17 +547,16 @@ test "readIndexFile/writeIndexFile" {
547547
var tmp = testing.tmpDir(.{});
548548
defer tmp.cleanup();
549549

550-
var segments = std.ArrayList(SegmentVersion).init(testing.allocator);
551-
defer segments.deinit();
552-
553-
try segments.append(.{ .version = 1, .included_merges = 0 });
554-
try segments.append(.{ .version = 2, .included_merges = 1 });
555-
try segments.append(.{ .version = 4, .included_merges = 0 });
550+
const segments = [_]SegmentVersion{
551+
.{ .version = 1, .included_merges = 0 },
552+
.{ .version = 2, .included_merges = 1 },
553+
.{ .version = 4, .included_merges = 0 },
554+
};
556555

557-
try writeIndexFile(tmp.dir, segments);
556+
try writeIndexFile(tmp.dir, &segments);
558557

559558
const segments2 = try readIndexFile(tmp.dir, std.testing.allocator);
560559
defer std.testing.allocator.free(segments2);
561560

562-
try testing.expectEqualSlices(SegmentVersion, segments.items, segments2);
561+
try testing.expectEqualSlices(SegmentVersion, &segments, segments2);
563562
}

0 commit comments

Comments
 (0)