mirror of
https://github.com/ziglang/zig.git
synced 2025-12-09 15:53:08 +00:00
Update ensureTotalCapacity to ensureTotalCapacityPrecise where it makes sense
These calls are all late-initialization of ArrayList's that were initialized outside the current scope. This allows us to still get the potential memory-saving benefits of the 'precision' of initCapacity.
This commit is contained in:
parent
f49d42729a
commit
a343758141
@ -276,7 +276,7 @@ pub const Coff = struct {
|
|||||||
if (self.sections.items.len == self.coff_header.number_of_sections)
|
if (self.sections.items.len == self.coff_header.number_of_sections)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
try self.sections.ensureTotalCapacity(self.coff_header.number_of_sections);
|
try self.sections.ensureTotalCapacityPrecise(self.coff_header.number_of_sections);
|
||||||
|
|
||||||
const in = self.in_file.reader();
|
const in = self.in_file.reader();
|
||||||
|
|
||||||
@ -297,7 +297,7 @@ pub const Coff = struct {
|
|||||||
std.mem.set(u8, name[8..], 0);
|
std.mem.set(u8, name[8..], 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
try self.sections.append(Section{
|
self.sections.appendAssumeCapacity(Section{
|
||||||
.header = SectionHeader{
|
.header = SectionHeader{
|
||||||
.name = name,
|
.name = name,
|
||||||
.misc = SectionHeader.Misc{ .virtual_size = try in.readIntLittle(u32) },
|
.misc = SectionHeader.Misc{ .virtual_size = try in.readIntLittle(u32) },
|
||||||
|
|||||||
@ -4146,7 +4146,7 @@ pub fn analyzeFnBody(mod: *Module, decl: *Decl, func: *Fn, arena: *Allocator) Se
|
|||||||
// for the runtime ones.
|
// for the runtime ones.
|
||||||
const fn_ty = decl.ty;
|
const fn_ty = decl.ty;
|
||||||
const runtime_params_len = @intCast(u32, fn_ty.fnParamLen());
|
const runtime_params_len = @intCast(u32, fn_ty.fnParamLen());
|
||||||
try inner_block.instructions.ensureTotalCapacity(gpa, runtime_params_len);
|
try inner_block.instructions.ensureTotalCapacityPrecise(gpa, runtime_params_len);
|
||||||
try sema.air_instructions.ensureUnusedCapacity(gpa, fn_info.total_params_len * 2); // * 2 for the `addType`
|
try sema.air_instructions.ensureUnusedCapacity(gpa, fn_info.total_params_len * 2); // * 2 for the `addType`
|
||||||
try sema.inst_map.ensureUnusedCapacity(gpa, fn_info.total_params_len);
|
try sema.inst_map.ensureUnusedCapacity(gpa, fn_info.total_params_len);
|
||||||
|
|
||||||
|
|||||||
@ -102,7 +102,7 @@ pub fn calcAdhocSignature(
|
|||||||
var buffer = try allocator.alloc(u8, page_size);
|
var buffer = try allocator.alloc(u8, page_size);
|
||||||
defer allocator.free(buffer);
|
defer allocator.free(buffer);
|
||||||
|
|
||||||
try cdir.data.ensureTotalCapacity(allocator, total_pages * hash_size + id.len + 1);
|
try cdir.data.ensureTotalCapacityPrecise(allocator, total_pages * hash_size + id.len + 1);
|
||||||
|
|
||||||
// 1. Save the identifier and update offsets
|
// 1. Save the identifier and update offsets
|
||||||
cdir.inner.identOffset = cdir.inner.length;
|
cdir.inner.identOffset = cdir.inner.length;
|
||||||
|
|||||||
@ -223,7 +223,7 @@ pub const SegmentCommand = struct {
|
|||||||
var segment = SegmentCommand{
|
var segment = SegmentCommand{
|
||||||
.inner = inner,
|
.inner = inner,
|
||||||
};
|
};
|
||||||
try segment.sections.ensureTotalCapacity(alloc, inner.nsects);
|
try segment.sections.ensureTotalCapacityPrecise(alloc, inner.nsects);
|
||||||
|
|
||||||
var i: usize = 0;
|
var i: usize = 0;
|
||||||
while (i < inner.nsects) : (i += 1) {
|
while (i < inner.nsects) : (i += 1) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user