diff --git a/parser.go b/parser.go index f73d2ce..5caeace 100644 --- a/parser.go +++ b/parser.go @@ -414,13 +414,15 @@ func EachKey(data []byte, cb func(int, []byte, ValueType, error), paths ...[]str // for unescape: if there are no escape sequences, this is cheap; if there are, it is a // bit more expensive, but causes no allocations unless len(key) > unescapeStackBufSize var keyUnesc []byte - var stackbuf [unescapeStackBufSize]byte if !keyEscaped { keyUnesc = key - } else if ku, err := Unescape(key, stackbuf[:]); err != nil { - return -1 } else { - keyUnesc = ku + var stackbuf [unescapeStackBufSize]byte + if ku, err := Unescape(key, stackbuf[:]); err != nil { + return -1 + } else { + keyUnesc = ku + } } if maxPath >= level {