@@ -11,6 +11,7 @@ import (
11
11
"gopkg.in/src-d/go-git.v4/plumbing/storer"
12
12
"gopkg.in/src-d/go-git.v4/storage/filesystem/internal/dotgit"
13
13
"gopkg.in/src-d/go-git.v4/storage/memory"
14
+ "gopkg.in/src-d/go-git.v4/utils/ioutil"
14
15
15
16
"gopkg.in/src-d/go-billy.v3"
16
17
)
@@ -53,10 +54,11 @@ func (s *ObjectStorage) loadIdxFile(h plumbing.Hash) error {
53
54
if err != nil {
54
55
return err
55
56
}
56
- defer idxfile .Close ()
57
57
58
+ defer ioutil .CheckClose (idxfile , & err )
58
59
s .index [h ] = make (idx )
59
- return s .index [h ].Decode (idxfile )
60
+ err = s .index [h ].Decode (idxfile )
61
+ return err
60
62
}
61
63
62
64
func (s * ObjectStorage ) NewEncodedObject () plumbing.EncodedObject {
@@ -94,14 +96,14 @@ func (s *ObjectStorage) SetEncodedObject(o plumbing.EncodedObject) (plumbing.Has
94
96
return plumbing .ZeroHash , err
95
97
}
96
98
97
- defer ow . Close ( )
99
+ defer ioutil . CheckClose ( ow , & err )
98
100
99
101
or , err := o .Reader ()
100
102
if err != nil {
101
103
return plumbing .ZeroHash , err
102
104
}
103
105
104
- defer or . Close ( )
106
+ defer ioutil . CheckClose ( or , & err )
105
107
106
108
if err := ow .WriteHeader (o .Type (), o .Size ()); err != nil {
107
109
return plumbing .ZeroHash , err
@@ -111,7 +113,7 @@ func (s *ObjectStorage) SetEncodedObject(o plumbing.EncodedObject) (plumbing.Has
111
113
return plumbing .ZeroHash , err
112
114
}
113
115
114
- return o .Hash (), nil
116
+ return o .Hash (), err
115
117
}
116
118
117
119
// EncodedObject returns the object with the given hash, by searching for it in
@@ -143,15 +145,15 @@ func (s *ObjectStorage) getFromUnpacked(h plumbing.Hash) (obj plumbing.EncodedOb
143
145
return nil , err
144
146
}
145
147
146
- defer f . Close ( )
148
+ defer ioutil . CheckClose ( f , & err )
147
149
148
150
obj = s .NewEncodedObject ()
149
151
r , err := objfile .NewReader (f )
150
152
if err != nil {
151
153
return nil , err
152
154
}
153
155
154
- defer r . Close ( )
156
+ defer ioutil . CheckClose ( r , & err )
155
157
156
158
t , size , err := r .Header ()
157
159
if err != nil {
@@ -186,7 +188,7 @@ func (s *ObjectStorage) getFromPackfile(h plumbing.Hash) (plumbing.EncodedObject
186
188
return nil , err
187
189
}
188
190
189
- defer f . Close ( )
191
+ defer ioutil . CheckClose ( f , & err )
190
192
191
193
p := packfile .NewScanner (f )
192
194
d , err := packfile .NewDecoder (p , memory .NewStorage ())
@@ -195,7 +197,8 @@ func (s *ObjectStorage) getFromPackfile(h plumbing.Hash) (plumbing.EncodedObject
195
197
}
196
198
197
199
d .SetOffsets (s .index [pack ])
198
- return d .DecodeObjectAt (offset )
200
+ obj , err := d .DecodeObjectAt (offset )
201
+ return obj , err
199
202
}
200
203
201
204
func (s * ObjectStorage ) findObjectInPackfile (h plumbing.Hash ) (plumbing.Hash , int64 ) {
0 commit comments