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

Commit 8f82387

Browse files
committed
Make DeltaBaseCache private
Signed-off-by: Javi Fontan <jfontan@gmail.com>
1 parent 2787bd7 commit 8f82387

File tree

2 files changed

+19
-12
lines changed

2 files changed

+19
-12
lines changed

plumbing/format/packfile/decoder.go

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ var (
5252
// is destroyed. The Offsets and CRCs are calculated whether an
5353
// ObjectStorer was provided or not.
5454
type Decoder struct {
55-
DeltaBaseCache cache.Object
55+
deltaBaseCache cache.Object
5656

5757
s *Scanner
5858
o storer.EncodedObjectStorer
@@ -84,6 +84,13 @@ func NewDecoder(s *Scanner, o storer.EncodedObjectStorer) (*Decoder, error) {
8484
cache.NewObjectLRUDefault())
8585
}
8686

87+
// NewDecoderWithCache is a version of NewDecoder where cache can be specified.
88+
func NewDecoderWithCache(s *Scanner, o storer.EncodedObjectStorer,
89+
cacheObject cache.Object) (*Decoder, error) {
90+
91+
return NewDecoderForType(s, o, plumbing.AnyObject, cacheObject)
92+
}
93+
8794
// NewDecoderForType returns a new Decoder but in this case for a specific object type.
8895
// When an object is read using this Decoder instance and it is not of the same type of
8996
// the specified one, nil will be returned. This is intended to avoid the content
@@ -108,7 +115,7 @@ func NewDecoderForType(s *Scanner, o storer.EncodedObjectStorer,
108115
return &Decoder{
109116
s: s,
110117
o: o,
111-
DeltaBaseCache: cacheObject,
118+
deltaBaseCache: cacheObject,
112119

113120
idx: NewIndex(0),
114121
offsetToType: make(map[int64]plumbing.ObjectType),
@@ -410,19 +417,19 @@ func (d *Decoder) fillOFSDeltaObjectContent(obj plumbing.EncodedObject, offset i
410417
}
411418

412419
func (d *Decoder) cacheGet(h plumbing.Hash) (plumbing.EncodedObject, bool) {
413-
if d.DeltaBaseCache == nil {
420+
if d.deltaBaseCache == nil {
414421
return nil, false
415422
}
416423

417-
return d.DeltaBaseCache.Get(h)
424+
return d.deltaBaseCache.Get(h)
418425
}
419426

420427
func (d *Decoder) cachePut(obj plumbing.EncodedObject) {
421-
if d.DeltaBaseCache == nil {
428+
if d.deltaBaseCache == nil {
422429
return
423430
}
424431

425-
d.DeltaBaseCache.Put(obj)
432+
d.deltaBaseCache.Put(obj)
426433
}
427434

428435
func (d *Decoder) recallByOffset(o int64) (plumbing.EncodedObject, error) {

storage/filesystem/object.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,16 +19,16 @@ import (
1919
)
2020

2121
type ObjectStorage struct {
22-
// DeltaBaseCache is an object cache uses to cache delta's bases when
23-
DeltaBaseCache cache.Object
22+
// deltaBaseCache is an object cache uses to cache delta's bases when
23+
deltaBaseCache cache.Object
2424

2525
dir *dotgit.DotGit
2626
index map[plumbing.Hash]*packfile.Index
2727
}
2828

2929
func newObjectStorage(dir *dotgit.DotGit) (ObjectStorage, error) {
3030
s := ObjectStorage{
31-
DeltaBaseCache: cache.NewObjectLRUDefault(),
31+
deltaBaseCache: cache.NewObjectLRUDefault(),
3232
dir: dir,
3333
}
3434

@@ -285,13 +285,13 @@ func (s *ObjectStorage) decodeObjectAt(
285285

286286
p := packfile.NewScanner(f)
287287

288-
d, err := packfile.NewDecoder(p, memory.NewStorage())
288+
d, err := packfile.NewDecoderWithCache(p, memory.NewStorage(),
289+
s.deltaBaseCache)
289290
if err != nil {
290291
return nil, err
291292
}
292293

293294
d.SetIndex(idx)
294-
d.DeltaBaseCache = s.DeltaBaseCache
295295
obj, err := d.DecodeObjectAt(offset)
296296
return obj, err
297297
}
@@ -398,7 +398,7 @@ func (s *ObjectStorage) buildPackfileIters(t plumbing.ObjectType, seen map[plumb
398398
return nil, err
399399
}
400400

401-
iter, err := newPackfileIter(pack, t, seen, s.index[h], s.DeltaBaseCache)
401+
iter, err := newPackfileIter(pack, t, seen, s.index[h], s.deltaBaseCache)
402402
if err != nil {
403403
return nil, err
404404
}

0 commit comments

Comments
 (0)