Skip to content
This repository was archived by the owner on Sep 11, 2020. It is now read-only.

Commit 3c2050e

Browse files
author
sona-tar
committed
storage: Add object type hint parameter to ObjectStorage.getFromUnpacked
1 parent 773d356 commit 3c2050e

File tree

1 file changed

+11
-4
lines changed

1 file changed

+11
-4
lines changed

storage/filesystem/object.go

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ func (s *ObjectStorage) Set(core.Object) (core.Hash, error) {
4040
// Get returns the object with the given hash, by searching for it in
4141
// the packfile and the git object directories.
4242
func (s *ObjectStorage) Get(t core.ObjectType, h core.Hash) (core.Object, error) {
43-
obj, err := s.getFromUnpacked(h)
43+
obj, err := s.getFromUnpacked(t, h)
4444
if err == dotgit.ErrObjfileNotFound {
4545
if s.index == nil {
4646
return nil, core.ErrObjectNotFound
@@ -51,7 +51,7 @@ func (s *ObjectStorage) Get(t core.ObjectType, h core.Hash) (core.Object, error)
5151
return obj, err
5252
}
5353

54-
func (s *ObjectStorage) getFromUnpacked(h core.Hash) (obj core.Object, err error) {
54+
func (s *ObjectStorage) getFromUnpacked(t core.ObjectType, h core.Hash) (obj core.Object, err error) {
5555
fs, path, err := s.dir.Objectfile(h)
5656
if err != nil {
5757
return nil, err
@@ -81,7 +81,14 @@ func (s *ObjectStorage) getFromUnpacked(h core.Hash) (obj core.Object, err error
8181
}
8282
}()
8383

84-
return obj, objReader.FillObject(obj)
84+
err = objReader.FillObject(obj)
85+
if err != nil {
86+
return nil, err
87+
}
88+
if core.AnyObject != t && obj.Type() != t {
89+
return nil, core.ErrObjectNotFound
90+
}
91+
return obj, nil
8592
}
8693

8794
// Get returns the object with the given hash, by searching for it in
@@ -140,7 +147,7 @@ func (s *ObjectStorage) Iter(t core.ObjectType) (core.ObjectIter, error) {
140147
}
141148

142149
for _, hash := range hashes {
143-
object, err := s.getFromUnpacked(hash)
150+
object, err := s.getFromUnpacked(core.AnyObject, hash)
144151
if err != nil {
145152
return nil, err
146153
}

0 commit comments

Comments
 (0)