From 2c9aa3655dc0bc0468e8f3a23fd2dea6623f139c Mon Sep 17 00:00:00 2001 From: InKryption <59504965+InKryption@users.noreply.github.com> Date: Mon, 27 Dec 2021 23:17:07 +0100 Subject: [PATCH] Copy array of strings instead of assuming lifetime Current setup works fine if passed static memory like '&.{ "glslc" }', but produces errors of various types (segmentation faults, access denied, file doesn't exist, etc) if passed a dynamically allocated slice, such as a slice containing the result of a call to `Builder.pathJoin`, a la `b.pathJoin(&.{ b.env_map.get("VULKAN_SDK").?, "bin", "glslc" })`. --- generator/build_integration.zig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/generator/build_integration.zig b/generator/build_integration.zig index 3d9dcbd..8423709 100644 --- a/generator/build_integration.zig +++ b/generator/build_integration.zig @@ -32,7 +32,7 @@ pub const ShaderCompileStep = struct { self.* = .{ .step = Step.init(.custom, "shader-compile", builder.allocator, make), .builder = builder, - .glslc_cmd = glslc_cmd, + .glslc_cmd = builder.dupeStrings(glslc_cmd), .shaders = std.ArrayList(Shader).init(builder.allocator), }; return self;