From b2f0472fe256b074a7aa7320bc54437886651a2b Mon Sep 17 00:00:00 2001 From: Taeer Bar-Yam Date: Tue, 4 Nov 2025 21:20:19 +0100 Subject: [PATCH] parser.y: allocate `Expr`s in the allocator --- src/libexpr/include/nix/expr/nixexpr.hh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/libexpr/include/nix/expr/nixexpr.hh b/src/libexpr/include/nix/expr/nixexpr.hh index 1db79c58b..08d39cd87 100644 --- a/src/libexpr/include/nix/expr/nixexpr.hh +++ b/src/libexpr/include/nix/expr/nixexpr.hh @@ -813,7 +813,7 @@ public: [[gnu::always_inline]] C * add(auto &&... args) { - return new C(std::forward(args)...); + return alloc.new_object(std::forward(args)...); } // we define some calls to add explicitly so that the argument can be passed in as initializer lists @@ -822,7 +822,7 @@ public: C * add(const PosIdx & pos, Expr * fun, std::vector && args) requires(std::same_as) { - return new C(pos, fun, std::move(args)); + return alloc.new_object(pos, fun, std::move(args)); } template @@ -830,7 +830,7 @@ public: C * add(const PosIdx & pos, Expr * fun, std::vector && args, PosIdx && cursedOrEndPos) requires(std::same_as) { - return new C(pos, fun, std::move(args), std::move(cursedOrEndPos)); + return alloc.new_object(pos, fun, std::move(args), std::move(cursedOrEndPos)); } template