From 74be85ac145cc6de5d03348e07be8d982c2211cb Mon Sep 17 00:00:00 2001 From: Jose Colon Rodriguez Date: Thu, 28 Mar 2024 10:06:00 -0400 Subject: PropsData and errdefers for init fns --- src/WidthData.zig | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src/WidthData.zig') diff --git a/src/WidthData.zig b/src/WidthData.zig index d17f0cd..b9ef84e 100644 --- a/src/WidthData.zig +++ b/src/WidthData.zig @@ -27,13 +27,16 @@ pub fn init(allocator: mem.Allocator) !Self { .allocator = allocator, .g_data = try GraphemeData.init(allocator), }; + errdefer self.g_data.deinit(); const stage_1_len: u16 = try reader.readInt(u16, endian); self.s1 = try allocator.alloc(u16, stage_1_len); + errdefer allocator.free(self.s1); for (0..stage_1_len) |i| self.s1[i] = try reader.readInt(u16, endian); const stage_2_len: u16 = try reader.readInt(u16, endian); self.s2 = try allocator.alloc(i3, stage_2_len); + errdefer allocator.free(self.s2); for (0..stage_2_len) |i| self.s2[i] = @intCast(try reader.readInt(i8, endian)); return self; -- cgit v1.2.3