aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--securecookie.go5
1 files changed, 5 insertions, 0 deletions
diff --git a/securecookie.go b/securecookie.go
index a96deb1..2509608 100644
--- a/securecookie.go
+++ b/securecookie.go
@@ -177,7 +177,12 @@ func (s *SecureCookie) Encode(name string, value interface{}) (string, error) {
// it was stored. The value argument is the encoded cookie value. The dst
// argument is where the cookie will be decoded. It must be a pointer.
func (s *SecureCookie) Decode(name, value string, dst interface{}) error {
+ // retErr is the error which will be returned.
+ // It will be the first error that will occur (if any).
var retErr error
+
+ // setErr saves the error only if there was no previous error.
+ // Otherwise retErr would be overwritten by subsequent errors.
setErr := func(err error) {
if retErr == nil {
retErr = err