From b4d6424d35a4634bb313c193952613b07695dd1e Mon Sep 17 00:00:00 2001 From: Karl Seguin Date: Mon, 17 Feb 2025 16:08:26 +0800 Subject: [PATCH] In release mode, switch from page_allocator to c_allocator --- src/main.zig | 24 +++++++----------------- 1 file changed, 7 insertions(+), 17 deletions(-) diff --git a/src/main.zig b/src/main.zig index c5c04996..31743c2a 100644 --- a/src/main.zig +++ b/src/main.zig @@ -202,23 +202,13 @@ pub fn main() !void { // allocator // - in Debug mode we use the General Purpose Allocator to detect memory leaks - // - in Release mode we use the page allocator - var alloc: std.mem.Allocator = undefined; - var _gpa: ?std.heap.GeneralPurposeAllocator(.{}) = null; - if (builtin.mode == .Debug) { - _gpa = std.heap.GeneralPurposeAllocator(.{}){}; - alloc = _gpa.?.allocator(); - } else { - alloc = std.heap.page_allocator; - } - defer { - if (_gpa) |*gpa| { - switch (gpa.deinit()) { - .ok => std.debug.print("No memory leaks\n", .{}), - .leak => @panic("Memory leak"), - } - } - } + // - in Release mode we use the c allocator + var gpa = std.heap.GeneralPurposeAllocator(.{}){}; + const alloc = if (builtin.mode == .Debug) gpa.allocator() else std.heap.c_allocator; + + defer if (builtin.mode == .Debug) { + _ = gpa.detectLeaks(); + }; // args var args: std.process.ArgIterator = undefined;