Skip to content

Commit 4dbba10

Browse files
committed
In release mode, switch from page_allocator to c_allocator
1 parent a2932f0 commit 4dbba10

File tree

1 file changed

+7
-17
lines changed

1 file changed

+7
-17
lines changed

src/main.zig

Lines changed: 7 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -202,23 +202,13 @@ pub fn main() !void {
202202

203203
// allocator
204204
// - in Debug mode we use the General Purpose Allocator to detect memory leaks
205-
// - in Release mode we use the page allocator
206-
var alloc: std.mem.Allocator = undefined;
207-
var _gpa: ?std.heap.GeneralPurposeAllocator(.{}) = null;
208-
if (builtin.mode == .Debug) {
209-
_gpa = std.heap.GeneralPurposeAllocator(.{}){};
210-
alloc = _gpa.?.allocator();
211-
} else {
212-
alloc = std.heap.page_allocator;
213-
}
214-
defer {
215-
if (_gpa) |*gpa| {
216-
switch (gpa.deinit()) {
217-
.ok => std.debug.print("No memory leaks\n", .{}),
218-
.leak => @panic("Memory leak"),
219-
}
220-
}
221-
}
205+
// - in Release mode we use the c allocator
206+
var gpa = std.heap.GeneralPurposeAllocator(.{}){};
207+
const alloc = if (builtin.mode == .Debug) gpa.allocator() else std.heap.c_allocator;
208+
209+
defer if (builtin.mode == .Debug) {
210+
_ = gpa.detectLeaks();
211+
};
222212

223213
// args
224214
var args: std.process.ArgIterator = undefined;

0 commit comments

Comments
 (0)