0
0

close documents returned by iterator before losing their reference

fixes #194
This commit is contained in:
Marty Schoch 2015-04-24 17:48:21 -04:00
parent b54a59139c
commit 16f538d7b7

View File

@ -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()
}