@@ -136,11 +136,11 @@ fn prepareMemorySegmentMerge(self: *Self) !?MemorySegmentList.PreparedMerge {
136
136
self .segments_lock .lockShared ();
137
137
defer self .segments_lock .unlockShared ();
138
138
139
- const merge = try self .memory_segments .prepareMerge () orelse return null ;
139
+ var merge = try self .memory_segments .prepareMerge () orelse return null ;
140
+ defer merge .merger .deinit ();
140
141
errdefer self .memory_segments .destroySegment (merge .target );
141
142
142
- std .debug .assert (merge .sources .num_segments == 2 );
143
- try merge .target .data .merge (& merge .sources .start .data , & merge .sources .end .data , & self .memory_segments );
143
+ try merge .target .data .merge (& merge .merger );
144
144
145
145
return merge ;
146
146
}
@@ -410,21 +410,11 @@ fn prepareFileSegmentMerge(self: *Self) !?FileSegmentList.PreparedMerge {
410
410
self .segments_lock .lockShared ();
411
411
defer self .segments_lock .unlockShared ();
412
412
413
- const merge = try self .file_segments .prepareMerge () orelse return null ;
413
+ var merge = try self .file_segments .prepareMerge () orelse return null ;
414
+ defer merge .merger .deinit ();
414
415
errdefer self .file_segments .destroySegment (merge .target );
415
416
416
- var merger = SegmentMerger (FileSegment ).init (self .allocator , & self .file_segments );
417
- defer merger .deinit ();
418
-
419
- var source_node = merge .sources .start ;
420
- while (true ) {
421
- try merger .addSource (& source_node .data );
422
- if (source_node == merge .sources .end ) break ;
423
- source_node = source_node .next orelse break ;
424
- }
425
- try merger .prepare ();
426
-
427
- try merge .target .data .build (self .data_dir , & merger );
417
+ try merge .target .data .build (self .data_dir , & merge .merger );
428
418
429
419
return merge ;
430
420
}
0 commit comments