Skip to content

Commit 525e80a

Browse files
committed
cleanup on init failure
1 parent a70984c commit 525e80a

File tree

3 files changed

+11
-0
lines changed

3 files changed

+11
-0
lines changed

src/json.zig

+1
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ pub const Json = struct {
2121

2222
pub fn init(allocator: Allocator, config: Config) !Json {
2323
const buf = try allocator.alloc(u8, config.max_size);
24+
errdefer allocator.free(buf);
2425

2526
var prefix_length: usize = 0;
2627
if (config.prefix) |prefix| {

src/logfmt.zig

+1
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ pub const LogFmt = struct {
2020

2121
pub fn init(allocator: Allocator, config: Config) !LogFmt {
2222
const buf = try allocator.alloc(u8, config.max_size);
23+
errdefer allocator.free(buf);
2324

2425
var prefix_length: usize = 0;
2526
if (config.prefix) |prefix| {

src/pool.zig

+9
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ pub const Pool = struct {
2525

2626
const pool = try allocator.create(Pool);
2727
errdefer allocator.destroy(pool);
28+
2829
pool.* = .{
2930
.mutex = .{},
3031
.config = config,
@@ -34,8 +35,16 @@ pub const Pool = struct {
3435
.level = @intFromEnum(config.level),
3536
};
3637

38+
var initialized: usize = 0;
39+
errdefer {
40+
for (0..initialized) |i| {
41+
pool.destroyLogger(loggers[i]);
42+
}
43+
}
44+
3745
for (0..size) |i| {
3846
loggers[i] = try pool.createLogger();
47+
initialized += 1;
3948
}
4049

4150
return pool;

0 commit comments

Comments
 (0)