From 7d93e2cfe7cba928c0e1a8c5dfa09368ca481e5e Mon Sep 17 00:00:00 2001 From: Mike Lang Date: Fri, 18 Nov 2016 18:06:13 -0800 Subject: [PATCH] merger: Pass pointers, not structs just in one function, where two of them are passed at once. This was causing errors because it was too large to fit the stack. --- app/merger.go | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/app/merger.go b/app/merger.go index be4d149b2..ab0f9379f 100644 --- a/app/merger.go +++ b/app/merger.go @@ -48,14 +48,15 @@ func (smartMerger) Merge(reports []report.Report) report.Report { case 1: return reports[0] } - c := make(chan report.Report, l) + c := make(chan *report.Report, l) for _, r := range reports { - c <- r + c <- &r } for ; l > 1; l-- { - go func(left, right report.Report) { - c <- left.Merge(right) + go func(left, right *report.Report) { + r := left.Merge(*right) + c <- &r }(<-c, <-c) } - return <-c + return *<-c }