diff options
author | 2022-03-02 15:34:26 -0800 | |
---|---|---|
committer | 2022-03-02 15:34:26 -0800 | |
commit | 17d625a7352bd65c5a0ac10805cb8550cf7db2a6 (patch) | |
tree | b517998e9714937c1dacf8762e408a7ad9088557 /src/resolver/package_json.zig | |
parent | 42f61ebf8ac560dbfb356fd276494ced58ce7dc8 (diff) | |
download | bun-17d625a7352bd65c5a0ac10805cb8550cf7db2a6.tar.gz bun-17d625a7352bd65c5a0ac10805cb8550cf7db2a6.tar.zst bun-17d625a7352bd65c5a0ac10805cb8550cf7db2a6.zip |
remove a threadlocal
Diffstat (limited to 'src/resolver/package_json.zig')
-rw-r--r-- | src/resolver/package_json.zig | 28 |
1 files changed, 16 insertions, 12 deletions
diff --git a/src/resolver/package_json.zig b/src/resolver/package_json.zig index 13f0b5467..d3d47a19d 100644 --- a/src/resolver/package_json.zig +++ b/src/resolver/package_json.zig @@ -24,7 +24,6 @@ const resolve_path = @import("./resolve_path.zig"); // so use an array-backed hash table instead of bucketed const MainFieldMap = std.StringArrayHashMap(string); pub const BrowserMap = std.StringArrayHashMap(string); -threadlocal var hashy: [2048]u8 = undefined; pub const MacroImportReplacementMap = std.StringArrayHashMap(string); pub const MacroMap = std.StringArrayHashMapUnmanaged(MacroImportReplacementMap); @@ -37,6 +36,21 @@ pub const PackageJSON = struct { production, }; + pub fn generateHash(package_json: *PackageJSON) void { + var hashy: [1024]u8 = undefined; + std.mem.set(u8, &hashy, 0); + var used: usize = 0; + std.mem.copy(u8, &hashy, package_json.name); + used = package_json.name.len; + + hashy[used] = '@'; + used += 1; + std.mem.copy(u8, hashy[used..], package_json.version); + used += package_json.version.len; + + package_json.hash = std.hash.Murmur3_32.hash(hashy[0..used]); + } + const node_modules_path = std.fs.path.sep_str ++ "node_modules" ++ std.fs.path.sep_str; pub fn nameForImport(this: *const PackageJSON, allocator: std.mem.Allocator) !string { if (strings.indexOf(this.source.path.text, node_modules_path)) |_| { @@ -734,17 +748,7 @@ pub const PackageJSON = struct { if (generate_hash) { if (package_json.name.len > 0 and package_json.version.len > 0) { - std.mem.set(u8, &hashy, 0); - var used: usize = 0; - std.mem.copy(u8, &hashy, package_json.name); - used = package_json.name.len; - - hashy[used] = '@'; - used += 1; - std.mem.copy(u8, hashy[used..], package_json.version); - used += package_json.version.len; - - package_json.hash = std.hash.Murmur3_32.hash(hashy[0..used]); + package_json.generateHash(); } } |