@@ -130,7 +130,7 @@ func TraverseByPrefix(r storage.Reader, prefix []byte, iterFunc IterationFunc, o
130130// When this returned function is executed (and only then), it will write into the `keyExists` whether
131131// the key exists.
132132// No errors are expected during normal operation.
133- func KeyExists (r storage.Reader , key []byte ) (exist bool , errExit error ) {
133+ func KeyExists (r storage.Reader , key []byte ) (bool , error ) {
134134 _ , closer , err := r .Get (key )
135135 if err != nil {
136136 // the key does not exist in the database
@@ -140,9 +140,7 @@ func KeyExists(r storage.Reader, key []byte) (exist bool, errExit error) {
140140 // exception while checking for the key
141141 return false , irrecoverable .NewExceptionf ("could not load data: %w" , err )
142142 }
143- defer func () {
144- errExit = closer .Close ()
145- }()
143+ defer closer .Close ()
146144
147145 // the key does exist in the database
148146 return true , nil
@@ -155,15 +153,13 @@ func KeyExists(r storage.Reader, key []byte) (exist bool, errExit error) {
155153// - storage.ErrNotFound if the key does not exist in the database
156154// - generic error in case of unexpected failure from the database layer, or failure
157155// to decode an existing database value
158- func RetrieveByKey (r storage.Reader , key []byte , entity interface {}) ( errExit error ) {
156+ func RetrieveByKey (r storage.Reader , key []byte , entity interface {}) error {
159157 val , closer , err := r .Get (key )
160158 if err != nil {
161159 return err
162160 }
163161
164- defer func () {
165- errExit = closer .Close ()
166- }()
162+ defer closer .Close ()
167163
168164 err = msgpack .Unmarshal (val , entity )
169165 if err != nil {
@@ -176,7 +172,7 @@ func RetrieveByKey(r storage.Reader, key []byte, entity interface{}) (errExit er
176172// keys with the format prefix` + `height` (where "+" denotes concatenation of binary strings). The height
177173// is encoded as Big-Endian (entries with numerically smaller height have lexicographically smaller key).
178174// The function finds the *highest* key with the given prefix and height equal to or below the given height.
179- func FindHighestAtOrBelowByPrefix (r storage.Reader , prefix []byte , height uint64 , entity interface {}) ( errExit error ) {
175+ func FindHighestAtOrBelowByPrefix (r storage.Reader , prefix []byte , height uint64 , entity interface {}) error {
180176 if len (prefix ) == 0 {
181177 return fmt .Errorf ("prefix must not be empty" )
182178 }
@@ -186,9 +182,7 @@ func FindHighestAtOrBelowByPrefix(r storage.Reader, prefix []byte, height uint64
186182 if err != nil {
187183 return fmt .Errorf ("can not create iterator: %w" , err )
188184 }
189- defer func () {
190- errExit = it .Close ()
191- }()
185+ defer it .Close ()
192186
193187 var highestKey []byte
194188
@@ -209,9 +203,7 @@ func FindHighestAtOrBelowByPrefix(r storage.Reader, prefix []byte, height uint64
209203 return err
210204 }
211205
212- defer func () {
213- errExit = closer .Close ()
214- }()
206+ defer closer .Close ()
215207
216208 err = msgpack .Unmarshal (val , entity )
217209 if err != nil {
0 commit comments