aboutsummaryrefslogtreecommitdiffstats
path: root/plumbing/format/packfile/decoder.go
diff options
context:
space:
mode:
Diffstat (limited to 'plumbing/format/packfile/decoder.go')
-rw-r--r--plumbing/format/packfile/decoder.go18
1 files changed, 10 insertions, 8 deletions
diff --git a/plumbing/format/packfile/decoder.go b/plumbing/format/packfile/decoder.go
index 765401f..69aef2d 100644
--- a/plumbing/format/packfile/decoder.go
+++ b/plumbing/format/packfile/decoder.go
@@ -403,12 +403,13 @@ func (d *Decoder) fillOFSDeltaObjectContent(obj plumbing.EncodedObject, offset i
return 0, err
}
- e, ok := d.idx.LookupOffset(uint64(offset))
- var base plumbing.EncodedObject
- if ok {
- base, ok = d.cacheGet(e.Hash)
- }
+ // e, ok := d.idx.LookupOffset(uint64(offset))
+ // if ok {
+ // base, ok = d.cacheGet(e.Hash)
+ // }
+ var base plumbing.EncodedObject
+ ok := false
if !ok {
base, err = d.recallByOffset(offset)
if err != nil {
@@ -446,11 +447,12 @@ func (d *Decoder) recallByOffset(o int64) (plumbing.EncodedObject, error) {
return d.DecodeObjectAt(o)
}
- if e, ok := d.idx.LookupOffset(uint64(o)); ok {
- return d.recallByHashNonSeekable(e.Hash)
+ hash, err := d.idx.FindHash(o)
+ if err != nil {
+ return nil, err
}
- return nil, plumbing.ErrObjectNotFound
+ return d.recallByHashNonSeekable(hash)
}
func (d *Decoder) recallByHash(h plumbing.Hash) (plumbing.EncodedObject, error) {