avoid infinite recursion by proxying to iterator

```
WARNING: staticcheck, gosimple and unused are all set, using megacheck instead
db/go_level_db.go:126:15⚠️ infinite recursive call (SA5007) (megacheck)
db/go_level_db.go:135:17⚠️ infinite recursive call (SA5007) (megacheck)
db/mem_db.go:106:2⚠️ redundant return statement (S1023) (megacheck)
```

https://circleci.com/gh/tendermint/tmlibs/220

Also remove unnecessary return statement
This commit is contained in:
Anton Kaliaev 2017-10-16 22:38:37 +04:00
parent cd2ad19db4
commit 0b22b27bbb
No known key found for this signature in database
GPG Key ID: 7B6881D965918214
2 changed files with 15 additions and 4 deletions

View File

@ -118,12 +118,12 @@ func (db *GoLevelDB) Stats() map[string]string {
}
type goLevelDBIterator struct {
iterator.Iterator
source iterator.Iterator
}
// Key returns a copy of the current key.
func (it *goLevelDBIterator) Key() []byte {
key := it.Key()
key := it.source.Key()
k := make([]byte, len(key))
copy(k, key)
@ -132,13 +132,25 @@ func (it *goLevelDBIterator) Key() []byte {
// Value returns a copy of the current value.
func (it *goLevelDBIterator) Value() []byte {
val := it.Value()
val := it.source.Value()
v := make([]byte, len(val))
copy(v, val)
return v
}
func (it *goLevelDBIterator) Error() error {
return it.source.Error()
}
func (it *goLevelDBIterator) Next() bool {
return it.source.Next()
}
func (it *goLevelDBIterator) Release() {
it.source.Release()
}
func (db *GoLevelDB) Iterator() Iterator {
return &goLevelDBIterator{db.db.NewIterator(nil, nil)}
}

View File

@ -103,7 +103,6 @@ func (it *memDBIterator) Value() []byte {
func (it *memDBIterator) Release() {
it.db = nil
it.keys = nil
return
}
func (it *memDBIterator) Error() error {