diff options
author | Javi Fontan <jfontan@gmail.com> | 2018-02-09 11:39:18 +0100 |
---|---|---|
committer | Javi Fontan <jfontan@gmail.com> | 2018-02-09 11:39:18 +0100 |
commit | d2273d2510d16c258d46ee72b87fd28b8850f1f2 (patch) | |
tree | c064707bdbc306edbe25865d203747800fd2092d /plumbing/format/packfile/object_pack.go | |
parent | 3a9d5e236ef38854c0e0acc1ba924260060c755a (diff) | |
download | go-git-d2273d2510d16c258d46ee72b87fd28b8850f1f2.tar.gz |
plumbing: format/packfile, fix panic retrieving object hash.
In some cases the original data is not saved before it is cleaned
and forces a panic when it's needed.
The change adds ObjectToPack.CleanOriginal to be used to clean original
object instead of:
object.Original = nil
Now when the Original data is freed because it's no longer in the pack
window a SetOriginal call is done to make sure that Size, Hash and Size
data is not lost.
Signed-off-by: Javi Fontan <jfontan@gmail.com>
Diffstat (limited to 'plumbing/format/packfile/object_pack.go')
-rw-r--r-- | plumbing/format/packfile/object_pack.go | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/plumbing/format/packfile/object_pack.go b/plumbing/format/packfile/object_pack.go index 877581e..661278d 100644 --- a/plumbing/format/packfile/object_pack.go +++ b/plumbing/format/packfile/object_pack.go @@ -90,6 +90,11 @@ func (o *ObjectToPack) SetOriginal(obj plumbing.EncodedObject) { } } +// CleanOriginal sets Original to nil +func (o *ObjectToPack) CleanOriginal() { + o.Original = nil +} + func (o *ObjectToPack) Type() plumbing.ObjectType { if o.Original != nil { return o.Original.Type() |