Replace ArrayList.init/ensureTotalCapacity pairs with initCapacity

Because ArrayList.initCapacity uses 'precise' capacity allocation, this should save memory on average, and definitely will save memory in cases where ArrayList is used where a regular allocated slice could have also be used.
This commit is contained in:
Ryan Liptak
2021-11-01 00:54:04 -07:00
committed by Andrew Kelley
parent d03e9d0b83
commit e97feb96e4
14 changed files with 42 additions and 67 deletions

View File

@@ -849,8 +849,7 @@ pub const DeclGen = struct {
assert(struct_obj.haveFieldTypes());
var llvm_field_types: std.ArrayListUnmanaged(*const llvm.Type) = .{};
try llvm_field_types.ensureTotalCapacity(gpa, struct_obj.fields.count());
var llvm_field_types = try std.ArrayListUnmanaged(*const llvm.Type).initCapacity(gpa, struct_obj.fields.count());
defer llvm_field_types.deinit(gpa);
for (struct_obj.fields.values()) |field| {
@@ -1251,8 +1250,7 @@ pub const DeclGen = struct {
const field_vals = tv.val.castTag(.@"struct").?.data;
const gpa = self.gpa;
var llvm_fields: std.ArrayListUnmanaged(*const llvm.Value) = .{};
try llvm_fields.ensureTotalCapacity(gpa, field_vals.len);
var llvm_fields = try std.ArrayListUnmanaged(*const llvm.Value).initCapacity(gpa, field_vals.len);
defer llvm_fields.deinit(gpa);
for (field_vals) |field_val, i| {