diff --git a/src/resolver/resolve_path.zig b/src/resolver/resolve_path.zig index 663acd1b2d..4a7df06662 100644 --- a/src/resolver/resolve_path.zig +++ b/src/resolver/resolve_path.zig @@ -1122,7 +1122,8 @@ pub fn joinStringBuf(buf: []u8, parts: anytype, comptime _platform: Platform) [] var count: usize = 0; for (parts) |part| { - count += if (part.len > 0) part.len + 1 else 0; + if (part.len == 0) continue; + count += part.len + 1; } if (count * 2 > temp_buf.len) { @@ -1133,9 +1134,7 @@ pub fn joinStringBuf(buf: []u8, parts: anytype, comptime _platform: Platform) [] temp_buf[0] = 0; for (parts) |part| { - if (part.len == 0) { - continue; - } + if (part.len == 0) continue; if (written > 0) { temp_buf[written] = platform.separator(); diff --git a/src/resolver/resolver.zig b/src/resolver/resolver.zig index eaa045de77..448c995633 100644 --- a/src/resolver/resolver.zig +++ b/src/resolver/resolver.zig @@ -3279,7 +3279,7 @@ pub const Resolver = struct { const str = brk: { if (std.fs.path.isAbsolute(sliced.slice())) break :brk sliced.slice(); const dir_path_buf = bufs(.node_modules_paths_buf); - break :brk r.fs.joinBuf(&[_]string{ r.fs.top_level_dir, sliced.slice() }, dir_path_buf); + break :brk bun.path.joinStringBuf(dir_path_buf, &[_]string{ r.fs.top_level_dir, sliced.slice() }, .auto); }; var arena = std.heap.ArenaAllocator.init(bun.default_allocator); defer arena.deinit(); @@ -3297,11 +3297,9 @@ pub const Resolver = struct { break :brk [2]string{ path_without_trailing_slash, "/node_modules" }; }; - list.append( - bun.String.createUTF8( - bun.strings.concat(stack_fallback_allocator.get(), &path_parts) catch unreachable, - ), - ) catch unreachable; + const nodemodules_path = bun.strings.concat(stack_fallback_allocator.get(), &path_parts) catch unreachable; + bun.path.posixToPlatformInPlace(u8, nodemodules_path); + list.append(bun.String.createUTF8(nodemodules_path)) catch unreachable; dir_info = (r.readDirInfo(std.fs.path.dirname(path_without_trailing_slash) orelse break) catch null) orelse break; } } else { diff --git a/src/string_immutable.zig b/src/string_immutable.zig index 47ad783768..bf000a66e2 100644 --- a/src/string_immutable.zig +++ b/src/string_immutable.zig @@ -5273,7 +5273,7 @@ pub fn concatWithLength( allocator: std.mem.Allocator, args: []const string, length: usize, -) !string { +) ![]u8 { const out = try allocator.alloc(u8, length); var remain = out; for (args) |arg| { @@ -5287,7 +5287,7 @@ pub fn concatWithLength( pub fn concat( allocator: std.mem.Allocator, args: []const string, -) !string { +) ![]u8 { var length: usize = 0; for (args) |arg| { length += arg.len;