From 291b6a07014a8e7b144643495c4425f6b472baf5 Mon Sep 17 00:00:00 2001 From: Meghan Denny Date: Thu, 28 Oct 2021 04:00:16 -0700 Subject: [PATCH] remove global allocator from u.detect_pkgname and u.detct_mainfile --- src/cmd/init.zig | 4 ++-- src/common.zig | 4 ++-- src/util/funcs.zig | 15 +++++++-------- 3 files changed, 11 insertions(+), 12 deletions(-) diff --git a/src/cmd/init.zig b/src/cmd/init.zig index 9eca8f460df4edeb0e4ebf1d5b056c51079e663a..ca86e59a2c03e80a2ff179c73eb725e1f1fdf7cb 100644 --- a/src/cmd/init.zig +++ b/src/cmd/init.zig @@ -30,14 +30,14 @@ pub fn execute(args: [][]u8) !void { const ptype = try inquirer.forEnum(stdout, stdin, "Are you making an application or a library?", gpa, enum { exe, lib }, null); - const name = try inquirer.forString(stdout, stdin, "package name:", gpa, u.detect_pkgname(u.try_index(string, args, 0, ""), "") catch |err| switch (err) { + const name = try inquirer.forString(stdout, stdin, "package name:", gpa, u.detect_pkgname(gpa, u.try_index(string, args, 0, ""), "") catch |err| switch (err) { error.NoBuildZig => { u.fail("init requires a build.zig file", .{}); }, else => return err, }); - const entry = if (ptype == .lib) try inquirer.forString(stdout, stdin, "package entry point:", gpa, u.detct_mainfile(u.try_index(string, args, 1, ""), null, name) catch |err| switch (err) { + const entry = if (ptype == .lib) try inquirer.forString(stdout, stdin, "package entry point:", gpa, u.detct_mainfile(gpa, u.try_index(string, args, 1, ""), null, name) catch |err| switch (err) { error.CantFindMain => null, else => return err, }) else null; diff --git a/src/common.zig b/src/common.zig index b2309ea4f6e3b427596c03dda9a9698ca880d04b..6579cab4f039e03c316a950e3f2aefc6a97b8cc0 100644 --- a/src/common.zig +++ b/src/common.zig @@ -243,8 +243,8 @@ pub fn get_module_from_dep(d: *zigmod.Dep, cachepath: string, options: *CollectO return null; } const moddirO = try std.fs.cwd().openDir(modpath, .{}); - const tryname = try u.detect_pkgname("", modpath); - const trymain = u.detct_mainfile("", moddirO, tryname) catch |err| switch (err) { + const tryname = try u.detect_pkgname(gpa, "", modpath); + const trymain = u.detct_mainfile(gpa, "", moddirO, tryname) catch |err| switch (err) { error.CantFindMain => null, else => return err, }; diff --git a/src/util/funcs.zig b/src/util/funcs.zig index f175d581cf9721a0bca1c1a426420bcf8d8ad856..a6b81b882c8ce427318c5180ecab10c4c967916b 100644 --- a/src/util/funcs.zig +++ b/src/util/funcs.zig @@ -1,6 +1,5 @@ const std = @import("std"); const string = []const u8; -const gpa = std.heap.c_allocator; const u = @import("index.zig"); @@ -249,7 +248,7 @@ pub fn slice(comptime T: type, input: []const T, from: usize, to: usize) []const return input[f..t]; } -pub fn detect_pkgname(override: string, dir: string) !string { +pub fn detect_pkgname(alloc: *std.mem.Allocator, override: string, dir: string) !string { if (override.len > 0) { return override; } @@ -257,15 +256,15 @@ pub fn detect_pkgname(override: string, dir: string) !string { if (!(try does_file_exist(dirO, "build.zig"))) { return error.NoBuildZig; } - const dpath = try std.fs.realpathAlloc(gpa, try std.mem.concat(gpa, u8, &.{ dir, "build.zig" })); - const splitP = try split(gpa, dpath, std.fs.path.sep_str); + const dpath = try std.fs.realpathAlloc(alloc, try std.mem.concat(alloc, u8, &.{ dir, "build.zig" })); + const splitP = try split(alloc, dpath, std.fs.path.sep_str); var name = splitP[splitP.len - 2]; name = trim_prefix(name, "zig-"); assert(name.len > 0, "package name must not be an empty string", .{}); return name; } -pub fn detct_mainfile(override: string, dir: ?std.fs.Dir, name: string) !string { +pub fn detct_mainfile(alloc: *std.mem.Allocator, override: string, dir: ?std.fs.Dir, name: string) !string { if (override.len > 0) { if (try does_file_exist(dir, override)) { if (std.mem.endsWith(u8, override, ".zig")) { @@ -273,14 +272,14 @@ pub fn detct_mainfile(override: string, dir: ?std.fs.Dir, name: string) !string } } } - const namedotzig = try std.mem.concat(gpa, u8, &.{ name, ".zig" }); + const namedotzig = try std.mem.concat(alloc, u8, &.{ name, ".zig" }); if (try does_file_exist(dir, namedotzig)) { return namedotzig; } - if (try does_file_exist(dir, try std.fs.path.join(gpa, &.{ "src", "lib.zig" }))) { + if (try does_file_exist(dir, try std.fs.path.join(alloc, &.{ "src", "lib.zig" }))) { return "src/lib.zig"; } - if (try does_file_exist(dir, try std.fs.path.join(gpa, &.{ "src", "main.zig" }))) { + if (try does_file_exist(dir, try std.fs.path.join(alloc, &.{ "src", "main.zig" }))) { return "src/main.zig"; } return error.CantFindMain; -- 2.54.0