aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRyan Liptak <squeek502@hotmail.com>2021-10-31 21:45:32 -0700
committerAndrew Kelley <andrew@ziglang.org>2021-11-01 15:08:41 -0400
commit70ef9bc75c42ec00e9d4231a2e1f1dca84144748 (patch)
treee172783da32798ca11c3b28c43cbcffb05fbf9d5 /src
parent77eefebe65fc2baed08755bceb8e4df77fe8103c (diff)
downloadzig-70ef9bc75c42ec00e9d4231a2e1f1dca84144748.tar.gz
zig-70ef9bc75c42ec00e9d4231a2e1f1dca84144748.zip
Fix ensureTotalCapacity calls that should be ensureUnusedCapacity calls
If these functions are called more than once, then the array list would no longer be guaranteed to have enough capacity during the appendAssumeCapacity calls. With ensureUnusedCapacity, they will always be guaranteed to have enough capacity regardless of how many times the function is called.
Diffstat (limited to 'src')
-rw-r--r--src/codegen/spirv.zig2
-rw-r--r--src/link/MachO/Dylib.zig2
-rw-r--r--src/link/MachO/Object.zig2
3 files changed, 3 insertions, 3 deletions
diff --git a/src/codegen/spirv.zig b/src/codegen/spirv.zig
index da2fa66fee..67faf32471 100644
--- a/src/codegen/spirv.zig
+++ b/src/codegen/spirv.zig
@@ -629,7 +629,7 @@ pub const DeclGen = struct {
const params = decl.ty.fnParamLen();
var i: usize = 0;
- try self.args.ensureTotalCapacity(params);
+ try self.args.ensureUnusedCapacity(params);
while (i < params) : (i += 1) {
const param_type_id = self.spv.types.get(decl.ty.fnParamType(i)).?;
const arg_result_id = self.spv.allocResultId();
diff --git a/src/link/MachO/Dylib.zig b/src/link/MachO/Dylib.zig
index e3998a8548..5b4ab6aa18 100644
--- a/src/link/MachO/Dylib.zig
+++ b/src/link/MachO/Dylib.zig
@@ -180,7 +180,7 @@ pub fn parse(self: *Dylib, allocator: *Allocator, target: std.Target) !void {
fn readLoadCommands(self: *Dylib, allocator: *Allocator, reader: anytype) !void {
const should_lookup_reexports = self.header.?.flags & macho.MH_NO_REEXPORTED_DYLIBS == 0;
- try self.load_commands.ensureTotalCapacity(allocator, self.header.?.ncmds);
+ try self.load_commands.ensureUnusedCapacity(allocator, self.header.?.ncmds);
var i: u16 = 0;
while (i < self.header.?.ncmds) : (i += 1) {
diff --git a/src/link/MachO/Object.zig b/src/link/MachO/Object.zig
index f0a299182c..21a0686fef 100644
--- a/src/link/MachO/Object.zig
+++ b/src/link/MachO/Object.zig
@@ -267,7 +267,7 @@ pub fn readLoadCommands(self: *Object, allocator: *Allocator, reader: anytype) !
const header = self.header orelse unreachable; // Unreachable here signifies a fatal unexplored condition.
const offset = self.file_offset orelse 0;
- try self.load_commands.ensureTotalCapacity(allocator, header.ncmds);
+ try self.load_commands.ensureUnusedCapacity(allocator, header.ncmds);
var i: u16 = 0;
while (i < header.ncmds) : (i += 1) {