aboutsummaryrefslogtreecommitdiff
path: root/src/resolver/package_json.zig
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <jarred@jarredsumner.com> 2022-03-02 15:34:26 -0800
committerGravatar Jarred Sumner <jarred@jarredsumner.com> 2022-03-02 15:34:26 -0800
commit17d625a7352bd65c5a0ac10805cb8550cf7db2a6 (patch)
treeb517998e9714937c1dacf8762e408a7ad9088557 /src/resolver/package_json.zig
parent42f61ebf8ac560dbfb356fd276494ced58ce7dc8 (diff)
downloadbun-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.zig28
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();
}
}