summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar Tim Culverhouse2024-10-14 19:42:44 -0500
committerGravatar Tim Culverhouse2024-10-14 19:42:44 -0500
commit14d4a37c3544ec82b1d9f54e2dab0eafb45c43b4 (patch)
treeea96d4dbcda022c3292577bdc5aab8c937ecbc80 /src
parentFixed benchmark duration printing (diff)
downloadzg-14d4a37c3544ec82b1d9f54e2dab0eafb45c43b4.tar.gz
zg-14d4a37c3544ec82b1d9f54e2dab0eafb45c43b4.tar.xz
zg-14d4a37c3544ec82b1d9f54e2dab0eafb45c43b4.zip
GraphemeData: define error set as mem.Allocator.Error
The reader is a static embedded file. All of the reads are either a readInt or a readAll into a previously allocated buffer. This function should not ever fail at runtime with a read error. Make all read errors unreachable, leaving only allocation errors as the error set.
Diffstat (limited to 'src')
-rw-r--r--src/GraphemeData.zig14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/GraphemeData.zig b/src/GraphemeData.zig
index 0ed79f2..de98bde 100644
--- a/src/GraphemeData.zig
+++ b/src/GraphemeData.zig
@@ -37,7 +37,7 @@ s3: []u8 = undefined,
37 37
38const Self = @This(); 38const Self = @This();
39 39
40pub fn init(allocator: mem.Allocator) !Self { 40pub fn init(allocator: mem.Allocator) mem.Allocator.Error!Self {
41 const decompressor = compress.flate.inflate.decompressor; 41 const decompressor = compress.flate.inflate.decompressor;
42 const in_bytes = @embedFile("gbp"); 42 const in_bytes = @embedFile("gbp");
43 var in_fbs = std.io.fixedBufferStream(in_bytes); 43 var in_fbs = std.io.fixedBufferStream(in_bytes);
@@ -48,20 +48,20 @@ pub fn init(allocator: mem.Allocator) !Self {
48 48
49 var self = Self{ .allocator = allocator }; 49 var self = Self{ .allocator = allocator };
50 50
51 const s1_len: u16 = try reader.readInt(u16, endian); 51 const s1_len: u16 = reader.readInt(u16, endian) catch unreachable;
52 self.s1 = try allocator.alloc(u16, s1_len); 52 self.s1 = try allocator.alloc(u16, s1_len);
53 errdefer allocator.free(self.s1); 53 errdefer allocator.free(self.s1);
54 for (0..s1_len) |i| self.s1[i] = try reader.readInt(u16, endian); 54 for (0..s1_len) |i| self.s1[i] = reader.readInt(u16, endian) catch unreachable;
55 55
56 const s2_len: u16 = try reader.readInt(u16, endian); 56 const s2_len: u16 = reader.readInt(u16, endian) catch unreachable;
57 self.s2 = try allocator.alloc(u16, s2_len); 57 self.s2 = try allocator.alloc(u16, s2_len);
58 errdefer allocator.free(self.s2); 58 errdefer allocator.free(self.s2);
59 for (0..s2_len) |i| self.s2[i] = try reader.readInt(u16, endian); 59 for (0..s2_len) |i| self.s2[i] = reader.readInt(u16, endian) catch unreachable;
60 60
61 const s3_len: u16 = try reader.readInt(u16, endian); 61 const s3_len: u16 = reader.readInt(u16, endian) catch unreachable;
62 self.s3 = try allocator.alloc(u8, s3_len); 62 self.s3 = try allocator.alloc(u8, s3_len);
63 errdefer allocator.free(self.s3); 63 errdefer allocator.free(self.s3);
64 _ = try reader.readAll(self.s3); 64 _ = reader.readAll(self.s3) catch unreachable;
65 65
66 return self; 66 return self;
67} 67}