From: Luuk van Dijk Date: Tue, 10 Jan 2012 10:07:35 +0000 (+0100) Subject: gc: omit runtime.closure wrap for closures without closure variables X-Git-Tag: weekly.2012-01-15~100 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=ba25778f3f24fcf0be5167737b28dd62d7fbeff1;p=gostls13.git gc: omit runtime.closure wrap for closures without closure variables Fixes #1894. test/closure.go's test for newfunc already covers this. R=rsc, dsymonds, bradfitz CC=golang-dev https://golang.org/cl/5516051 --- diff --git a/src/cmd/gc/closure.c b/src/cmd/gc/closure.c index d29e8cbc28..fa44e40fae 100644 --- a/src/cmd/gc/closure.c +++ b/src/cmd/gc/closure.c @@ -192,6 +192,10 @@ walkclosure(Node *func, NodeList **init) Node *xtype, *xfunc, *call, *clos; NodeList *l, *in; + // no closure vars, don't bother wrapping + if(func->cvars == nil) + return makeclosure(func, init, 1)->nname; + /* * wrap body in external function * with extra closure parameters.