diff --git a/index/store/forestdb/iterator.go b/index/store/forestdb/iterator.go index 2bc2a596..5210352d 100644 --- a/index/store/forestdb/iterator.go +++ b/index/store/forestdb/iterator.go @@ -49,6 +49,9 @@ func (i *Iterator) SeekFirst() { i.valid = false return } + if i.curr != nil { + i.curr.Close() + } i.curr, err = i.iterator.Get() if err != nil { i.valid = false @@ -61,6 +64,9 @@ func (i *Iterator) Seek(key []byte) { i.valid = false return } + if i.curr != nil { + i.curr.Close() + } i.curr, err = i.iterator.Get() if err != nil { i.valid = false @@ -74,6 +80,9 @@ func (i *Iterator) Next() { i.valid = false return } + if i.curr != nil { + i.curr.Close() + } i.curr, err = i.iterator.Get() if err != nil { i.valid = false @@ -101,5 +110,8 @@ func (i *Iterator) Valid() bool { func (i *Iterator) Close() error { i.valid = false + if i.curr != nil { + i.curr.Close() + } return i.iterator.Close() }