From ee6dcaa8f7c0dc4ee36f700f171b923d2b27861c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Olivier=20Mengu=C3=A9?= Date: Wed, 7 Jun 2023 22:33:48 +0200 Subject: [PATCH] Simplify Defer: do not wrap first deferred func Faster call to the deferred function for the most common case (a single Defer call). --- quicktest.go | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/quicktest.go b/quicktest.go index b54a6a4..a0757b6 100644 --- a/quicktest.go +++ b/quicktest.go @@ -129,11 +129,13 @@ func (c *C) Defer(f func()) { } oldDeferred := c.deferred - c.deferred = func() { - if oldDeferred != nil { + if oldDeferred != nil { + c.deferred = func() { defer oldDeferred() + f() } - f() + } else { + c.deferred = f } }