From c4ef0076084aa15567b1464ef94108228c18fbfc Mon Sep 17 00:00:00 2001 From: Andrei Cheboksarov <37665782+cheb0@users.noreply.github.com> Date: Wed, 15 Jul 2026 12:03:50 +0400 Subject: [PATCH] single call site when tree fold --- node/builder.go | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/node/builder.go b/node/builder.go index 80ab62d33..0b3ecd83f 100644 --- a/node/builder.go +++ b/node/builder.go @@ -36,8 +36,10 @@ func treeFold[V any](op func(V, V) V, values []V) V { mid := len(values) / 2 - return op( - treeFold(op, values[:mid]), - treeFold(op, values[mid:]), - ) + // single call site to prevent stack traces explosion of alloc samples on ultra-deep OR trees + var children [2]V + for i, part := range [2][]V{values[:mid], values[mid:]} { + children[i] = treeFold(op, part) + } + return op(children[0], children[1]) }