diff options
author | 2022-12-13 11:37:50 -0800 | |
---|---|---|
committer | 2022-12-13 11:37:50 -0800 | |
commit | 3236a99b2da3e023dbc153dccc388340c312aa81 (patch) | |
tree | 8409734cdcb53c1f12091d7324689d797265d212 | |
parent | 18d4cfd4f21a38009d48315f585e8c2006772710 (diff) | |
download | bun-3236a99b2da3e023dbc153dccc388340c312aa81.tar.gz bun-3236a99b2da3e023dbc153dccc388340c312aa81.tar.zst bun-3236a99b2da3e023dbc153dccc388340c312aa81.zip |
missing id when over 8 packages
-rw-r--r-- | src/install/lockfile.zig | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/install/lockfile.zig b/src/install/lockfile.zig index 5948ef2c8..710cec8d2 100644 --- a/src/install/lockfile.zig +++ b/src/install/lockfile.zig @@ -1558,8 +1558,9 @@ pub fn getOrPutID(this: *Lockfile, id: PackageID, name_hash: PackageNameHash) !v for (ids[2..7]) |_, i| { ids[i + 2] = invalid_package_id - 1; } - ids[7] = invalid_package_id; + // stage1 compiler doesn't like this + ids[7] = invalid_package_id; var ids_sentinel = ids.ptr[0 .. ids.len - 1 :invalid_package_id]; index.* = .{ .PackageIDMultiple = ids_sentinel, @@ -1576,13 +1577,16 @@ pub fn getOrPutID(this: *Lockfile, id: PackageID, name_hash: PackageNameHash) !v var new_ids = try this.allocator.alloc(PackageID, ids.len + 8); defer this.allocator.free(ids); - std.mem.set(PackageID, new_ids, invalid_package_id - 1); for (ids) |id2, i| { new_ids[i] = id2; } - new_ids[new_ids.len - 1] = invalid_package_id; + new_ids[ids.len - 1] = id; + for (new_ids[ids.len .. new_ids.len - 2]) |_, i| { + new_ids[i + ids.len] = invalid_package_id - 1; + } // stage1 compiler doesn't like this + new_ids[new_ids.len - 1] = invalid_package_id; var new_ids_sentinel = new_ids.ptr[0 .. new_ids.len - 1 :invalid_package_id]; index.* = .{ .PackageIDMultiple = new_ids_sentinel, |