From b75d86027d589be632a831ec55565230818dc4ef Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Mon, 18 Apr 2022 05:28:31 -0700 Subject: [PATCH] stage2: avoid binary bloat from GeneralPurposeAllocator In the case of not using it. --- src/main.zig | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/main.zig b/src/main.zig index 823eb91f33..0d61c3271e 100644 --- a/src/main.zig +++ b/src/main.zig @@ -135,10 +135,9 @@ var general_purpose_allocator = std.heap.GeneralPurposeAllocator(.{ pub fn main() anyerror!void { crash_report.initialize(); - var gpa_need_deinit = false; + const use_gpa = build_options.force_gpa or !builtin.link_libc; const gpa = gpa: { - if (build_options.force_gpa or !builtin.link_libc) { - gpa_need_deinit = true; + if (use_gpa) { break :gpa general_purpose_allocator.allocator(); } // We would prefer to use raw libc allocator here, but cannot @@ -148,7 +147,7 @@ pub fn main() anyerror!void { } break :gpa std.heap.raw_c_allocator; }; - defer if (gpa_need_deinit) { + defer if (use_gpa) { _ = general_purpose_allocator.deinit(); }; var arena_instance = std.heap.ArenaAllocator.init(gpa);