diff options
| author | 2024-10-14 19:42:44 -0500 | |
|---|---|---|
| committer | 2024-10-14 19:42:44 -0500 | |
| commit | 14d4a37c3544ec82b1d9f54e2dab0eafb45c43b4 (patch) | |
| tree | ea96d4dbcda022c3292577bdc5aab8c937ecbc80 /src | |
| parent | Fixed benchmark duration printing (diff) | |
| download | zg-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.zig | 14 |
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 | ||
| 38 | const Self = @This(); | 38 | const Self = @This(); |
| 39 | 39 | ||
| 40 | pub fn init(allocator: mem.Allocator) !Self { | 40 | pub 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 | } |