@@ -26,13 +26,21 @@ func ScanRepositoryUsingGraph(
2626 if err != nil {
2727 return HistorySize {}, err
2828 }
29- defer refIter .Close ()
29+ defer func () {
30+ if refIter != nil {
31+ refIter .Close ()
32+ }
33+ }()
3034
3135 iter , in , err := repo .NewObjectIter ("--stdin" , "--date-order" )
3236 if err != nil {
3337 return HistorySize {}, err
3438 }
35- defer iter .Close ()
39+ defer func () {
40+ if iter != nil {
41+ iter .Close ()
42+ }
43+ }()
3644
3745 errChan := make (chan error , 1 )
3846 var refs []Reference
@@ -67,7 +75,9 @@ func ScanRepositoryUsingGraph(
6775 return
6876 }
6977 }
70- errChan <- nil
78+ err := refIter .Close ()
79+ refIter = nil
80+ errChan <- err
7181 }()
7282
7383 type ObjectHeader struct {
@@ -154,11 +164,21 @@ func ScanRepositoryUsingGraph(
154164 return HistorySize {}, err
155165 }
156166
167+ err = iter .Close ()
168+ iter = nil
169+ if err != nil {
170+ return HistorySize {}, err
171+ }
172+
157173 objectIter , objectIn , err := repo .NewBatchObjectIter ()
158174 if err != nil {
159175 return HistorySize {}, err
160176 }
161- defer objectIter .Close ()
177+ defer func () {
178+ if objectIter != nil {
179+ objectIter .Close ()
180+ }
181+ }()
162182
163183 go func () {
164184 defer objectIn .Close ()
@@ -297,6 +317,12 @@ func ScanRepositoryUsingGraph(
297317 return HistorySize {}, err
298318 }
299319
320+ err = objectIter .Close ()
321+ objectIter = nil
322+ if err != nil {
323+ return HistorySize {}, err
324+ }
325+
300326 progressMeter .Start ("Processing references: %d" )
301327 for _ , ref := range refs {
302328 progressMeter .Inc ()
0 commit comments