Skip to content

Commit 3e3f8a4

Browse files
committed
std.zig.AstGen: use shrinkRetainingCapacity while shrinking scratch list
After #25832 it has safety features (memset to undefined), we can take use of that here, since scratch is a temporary storage.
1 parent be4eaed commit 3e3f8a4

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

lib/std/zig/AstGen.zig

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5004,7 +5004,7 @@ fn structDeclInner(
50045004
defer block_scope.unstack();
50055005

50065006
const scratch_top = astgen.scratch.items.len;
5007-
defer astgen.scratch.items.len = scratch_top;
5007+
defer astgen.scratch.shrinkRetainingCapacity(scratch_top);
50085008

50095009
var backing_int_body_len: usize = 0;
50105010
const backing_int_ref: Zir.Inst.Ref = blk: {
@@ -5225,7 +5225,7 @@ fn tupleDecl(
52255225
// init: Inst.Ref, // `.none` for non-`comptime` fields
52265226
// }
52275227
const fields_start = astgen.scratch.items.len;
5228-
defer astgen.scratch.items.len = fields_start;
5228+
defer astgen.scratch.shrinkRetainingCapacity(fields_start);
52295229

52305230
try astgen.scratch.ensureUnusedCapacity(gpa, container_decl.ast.members.len * 2);
52315231

@@ -7269,7 +7269,7 @@ fn switchExprErrUnion(
72697269
const case_table_end = multi_case_table + multi_cases_len;
72707270

72717271
try astgen.scratch.resize(gpa, case_table_end);
7272-
defer astgen.scratch.items.len = scratch_top;
7272+
defer astgen.scratch.shrinkRetainingCapacity(scratch_top);
72737273

72747274
var block_scope = parent_gz.makeSubBlock(scope);
72757275
// block_scope not used for collecting instructions
@@ -7804,7 +7804,7 @@ fn switchExpr(
78047804
const multi_case_table = scalar_case_table + scalar_cases_len;
78057805
const case_table_end = multi_case_table + multi_cases_len;
78067806
try astgen.scratch.resize(gpa, case_table_end);
7807-
defer astgen.scratch.items.len = scratch_top;
7807+
defer astgen.scratch.shrinkRetainingCapacity(scratch_top);
78087808

78097809
var block_scope = parent_gz.makeSubBlock(scope);
78107810
// block_scope not used for collecting instructions
@@ -10134,7 +10134,7 @@ fn callExpr(
1013410134
try gz.instructions.append(astgen.gpa, call_index);
1013510135

1013610136
const scratch_top = astgen.scratch.items.len;
10137-
defer astgen.scratch.items.len = scratch_top;
10137+
defer astgen.scratch.shrinkRetainingCapacity(scratch_top);
1013810138

1013910139
var scratch_index = scratch_top;
1014010140
try astgen.scratch.resize(astgen.gpa, scratch_top + call.ast.params.len);

0 commit comments

Comments
 (0)