@@ -293,7 +293,9 @@ func (d *Database) Has(key []byte) (bool, error) {
293293 } else if err != nil {
294294 return false , err
295295 }
296- closer .Close ()
296+ if err = closer .Close (); err != nil {
297+ return false , err
298+ }
297299 return true , nil
298300}
299301
@@ -310,7 +312,9 @@ func (d *Database) Get(key []byte) ([]byte, error) {
310312 }
311313 ret := make ([]byte , len (dat ))
312314 copy (ret , dat )
313- closer .Close ()
315+ if err = closer .Close (); err != nil {
316+ return nil , err
317+ }
314318 return ret , nil
315319}
316320
@@ -519,14 +523,18 @@ type batch struct {
519523
520524// Put inserts the given value into the batch for later committing.
521525func (b * batch ) Put (key , value []byte ) error {
522- b .b .Set (key , value , nil )
526+ if err := b .b .Set (key , value , nil ); err != nil {
527+ return err
528+ }
523529 b .size += len (key ) + len (value )
524530 return nil
525531}
526532
527533// Delete inserts the key removal into the batch for later committing.
528534func (b * batch ) Delete (key []byte ) error {
529- b .b .Delete (key , nil )
535+ if err := b .b .Delete (key , nil ); err != nil {
536+ return err
537+ }
530538 b .size += len (key )
531539 return nil
532540}
@@ -558,19 +566,22 @@ func (b *batch) Replay(w ethdb.KeyValueWriter) error {
558566 for {
559567 kind , k , v , ok , err := reader .Next ()
560568 if ! ok || err != nil {
561- break
569+ return err
562570 }
563571 // The (k,v) slices might be overwritten if the batch is reset/reused,
564572 // and the receiver should copy them if they are to be retained long-term.
565573 if kind == pebble .InternalKeyKindSet {
566- w .Put (k , v )
574+ if err = w .Put (k , v ); err != nil {
575+ return err
576+ }
567577 } else if kind == pebble .InternalKeyKindDelete {
568- w .Delete (k )
578+ if err = w .Delete (k ); err != nil {
579+ return err
580+ }
569581 } else {
570582 return fmt .Errorf ("unhandled operation, keytype: %v" , kind )
571583 }
572584 }
573- return nil
574585}
575586
576587// pebbleIterator is a wrapper of underlying iterator in storage engine.
0 commit comments