diff options
author | Miguel Molina <miguel@erizocosmi.co> | 2018-08-09 12:16:57 +0200 |
---|---|---|
committer | Miguel Molina <miguel@erizocosmi.co> | 2018-08-09 12:16:57 +0200 |
commit | 34cc506735ee0cd29362da51592b49a217df8159 (patch) | |
tree | f81df515e1471ddea1ed0f35e9ac3983ad5460c2 /storage/filesystem/object.go | |
parent | 71a3c9161d4d8d2baf16440a86a02e8f5678aef2 (diff) | |
download | go-git-34cc506735ee0cd29362da51592b49a217df8159.tar.gz |
storage: filesystem, benchmark PackfileIter
Signed-off-by: Miguel Molina <miguel@erizocosmi.co>
Diffstat (limited to 'storage/filesystem/object.go')
-rw-r--r-- | storage/filesystem/object.go | 30 |
1 files changed, 26 insertions, 4 deletions
diff --git a/storage/filesystem/object.go b/storage/filesystem/object.go index 2032eac..4757938 100644 --- a/storage/filesystem/object.go +++ b/storage/filesystem/object.go @@ -509,9 +509,20 @@ func (iter *packfileIter) Next() (plumbing.EncodedObject, error) { } } -// ForEach is never called since is used inside of a MultiObjectIterator func (iter *packfileIter) ForEach(cb func(plumbing.EncodedObject) error) error { - return nil + for { + o, err := iter.Next() + if err != nil { + if err == io.EOF { + return nil + } + return err + } + + if err := cb(o); err != nil { + return err + } + } } func (iter *packfileIter) Close() { @@ -543,9 +554,20 @@ func (iter *objectsIter) Next() (plumbing.EncodedObject, error) { return obj, err } -// ForEach is never called since is used inside of a MultiObjectIterator func (iter *objectsIter) ForEach(cb func(plumbing.EncodedObject) error) error { - return nil + for { + o, err := iter.Next() + if err != nil { + if err == io.EOF { + return nil + } + return err + } + + if err := cb(o); err != nil { + return err + } + } } func (iter *objectsIter) Close() { |