@@ -40,7 +40,7 @@ func (s *ObjectStorage) Set(core.Object) (core.Hash, error) {
40
40
// Get returns the object with the given hash, by searching for it in
41
41
// the packfile and the git object directories.
42
42
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 )
44
44
if err == dotgit .ErrObjfileNotFound {
45
45
if s .index == nil {
46
46
return nil , core .ErrObjectNotFound
@@ -51,7 +51,7 @@ func (s *ObjectStorage) Get(t core.ObjectType, h core.Hash) (core.Object, error)
51
51
return obj , err
52
52
}
53
53
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 ) {
55
55
fs , path , err := s .dir .Objectfile (h )
56
56
if err != nil {
57
57
return nil , err
@@ -81,7 +81,14 @@ func (s *ObjectStorage) getFromUnpacked(h core.Hash) (obj core.Object, err error
81
81
}
82
82
}()
83
83
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
85
92
}
86
93
87
94
// 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) {
140
147
}
141
148
142
149
for _ , hash := range hashes {
143
- object , err := s .getFromUnpacked (hash )
150
+ object , err := s .getFromUnpacked (core . AnyObject , hash )
144
151
if err != nil {
145
152
return nil , err
146
153
}
0 commit comments