From d2273d2510d16c258d46ee72b87fd28b8850f1f2 Mon Sep 17 00:00:00 2001 From: Javi Fontan Date: Fri, 9 Feb 2018 11:39:18 +0100 Subject: 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 --- plumbing/format/packfile/object_pack.go | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'plumbing/format/packfile/object_pack.go') 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() -- cgit