authorgravatar for 78776922+coffeebe4code@users.noreply.github.comChris Clark <78776922+coffeebe4code@users.noreply.github.com> 2025-03-24 14:14:01-05:00
committergravatar for noreply@github.comGitHub <noreply@github.com> 2025-03-24 20:14:01+01:00
log525466b49d4acc0d33f528bc9d53392c309a43bd
tree9f3c552243ec76738e30b9216245eafc9e3c5f85
parent89db4f2e9390a75b73be3d20a95df78e376cfdd5
signaturebadge-check Signed by PGP key B5690EEEBB952194

std.zig.Ast: Fix error case memory leak in parse()


1 files changed, 7 insertions(+), 2 deletions(-)

lib/std/zig/Ast.zig+7-2
......@@ -181,14 +181,19 @@ pub fn parse(gpa: Allocator, source: [:0]const u8, mode: Mode) Allocator.Error!A
181181 .zon => try parser.parseZon(),
182182 }
183183
184 const extra_data = try parser.extra_data.toOwnedSlice(gpa);
185 errdefer gpa.free(extra_data);
186 const errors = try parser.errors.toOwnedSlice(gpa);
187 errdefer gpa.free(errors);
188
184189 // TODO experiment with compacting the MultiArrayList slices here
185190 return Ast{
186191 .source = source,
187192 .mode = mode,
188193 .tokens = tokens.toOwnedSlice(),
189194 .nodes = parser.nodes.toOwnedSlice(),
190 .extra_data = try parser.extra_data.toOwnedSlice(gpa),
191 .errors = try parser.errors.toOwnedSlice(gpa),
195 .extra_data = extra_data,
196 .errors = errors,
192197 };
193198}
194199