From 81d9403dcea172ce2fdb44610c9350821109adae Mon Sep 17 00:00:00 2001 From: Wink Saville Date: Sun, 30 Sep 2018 00:02:01 -0700 Subject: [PATCH] Add SegmentedList.shrink I was exploring std.zig.Tokenizer and wanted to compare performance of arrays, SegmentedList and ArrayList and needed SegmentedList.shrink to make the comparison "fair". --- std/segmented_list.zig | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/std/segmented_list.zig b/std/segmented_list.zig index c7c39651c..d786e0bec 100644 --- a/std/segmented_list.zig +++ b/std/segmented_list.zig @@ -201,6 +201,11 @@ pub fn SegmentedList(comptime T: type, comptime prealloc_item_count: usize) type self.dynamic_segments = self.allocator.shrink([*]T, self.dynamic_segments, new_cap_shelf_count); } + pub fn shrink(self: *Self, new_len: usize) void { + assert(new_len <= self.len); + self.len = new_len; + } + pub fn uncheckedAt(self: var, index: usize) AtType(@typeOf(self)) { if (index < prealloc_item_count) { return &self.prealloc_segment[index];