From 60f09928d1fb8cb6c5e02b66616b170407d511f8 Mon Sep 17 00:00:00 2001 From: Taeer Bar-Yam Date: Mon, 24 Nov 2025 20:25:20 +0100 Subject: [PATCH] libexpr: move ExprLet::attrs data to arena as well I missed this because I assumed all Exprs were recursed into by bindVars, but ExprLet's ExprAttrs field is not really its own AST node, so it doesn't get recursed into. --- src/libexpr/nixexpr.cc | 1 + 1 file changed, 1 insertion(+) diff --git a/src/libexpr/nixexpr.cc b/src/libexpr/nixexpr.cc index 6c9aa26dd..fc8c71b07 100644 --- a/src/libexpr/nixexpr.cc +++ b/src/libexpr/nixexpr.cc @@ -504,6 +504,7 @@ void ExprCall::bindVars(EvalState & es, const std::shared_ptr & void ExprLet::bindVars(EvalState & es, const std::shared_ptr & env) { + attrs->moveDataToAllocator(es.mem.exprs.alloc); auto newEnv = [&]() -> std::shared_ptr { auto newEnv = std::make_shared(nullptr, env, attrs->attrs->size());