close documents returned by iterator before losing their reference
fixes #194
This commit is contained in:
parent
b54a59139c
commit
16f538d7b7
@ -49,6 +49,9 @@ func (i *Iterator) SeekFirst() {
|
|||||||
i.valid = false
|
i.valid = false
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
if i.curr != nil {
|
||||||
|
i.curr.Close()
|
||||||
|
}
|
||||||
i.curr, err = i.iterator.Get()
|
i.curr, err = i.iterator.Get()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
i.valid = false
|
i.valid = false
|
||||||
@ -61,6 +64,9 @@ func (i *Iterator) Seek(key []byte) {
|
|||||||
i.valid = false
|
i.valid = false
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
if i.curr != nil {
|
||||||
|
i.curr.Close()
|
||||||
|
}
|
||||||
i.curr, err = i.iterator.Get()
|
i.curr, err = i.iterator.Get()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
i.valid = false
|
i.valid = false
|
||||||
@ -74,6 +80,9 @@ func (i *Iterator) Next() {
|
|||||||
i.valid = false
|
i.valid = false
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
if i.curr != nil {
|
||||||
|
i.curr.Close()
|
||||||
|
}
|
||||||
i.curr, err = i.iterator.Get()
|
i.curr, err = i.iterator.Get()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
i.valid = false
|
i.valid = false
|
||||||
@ -101,5 +110,8 @@ func (i *Iterator) Valid() bool {
|
|||||||
|
|
||||||
func (i *Iterator) Close() error {
|
func (i *Iterator) Close() error {
|
||||||
i.valid = false
|
i.valid = false
|
||||||
|
if i.curr != nil {
|
||||||
|
i.curr.Close()
|
||||||
|
}
|
||||||
return i.iterator.Close()
|
return i.iterator.Close()
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user