File tree 3 files changed +18
-8
lines changed
3 files changed +18
-8
lines changed Original file line number Diff line number Diff line change @@ -103,7 +103,7 @@ func (dw *deltaSelector) objectsToPack(
103
103
104
104
otp := newObjectToPack (o )
105
105
if _ , ok := o .(plumbing.DeltaObject ); ok {
106
- otp .Original = nil
106
+ otp .CleanOriginal ()
107
107
}
108
108
109
109
objectsToPack = append (objectsToPack , otp )
@@ -231,7 +231,8 @@ func (dw *deltaSelector) walk(
231
231
delete (indexMap , obj .Hash ())
232
232
233
233
if obj .IsDelta () {
234
- obj .Original = nil
234
+ obj .SaveOriginalMetadata ()
235
+ obj .CleanOriginal ()
235
236
}
236
237
}
237
238
Original file line number Diff line number Diff line change @@ -233,10 +233,10 @@ func (s *EncoderSuite) deltaOverDeltaCyclicTest(c *C) {
233
233
// is nil.
234
234
po1 .SetOriginal (po1 .Original )
235
235
pd2 .SetOriginal (pd2 .Original )
236
- pd2 .SetOriginal ( nil )
236
+ pd2 .CleanOriginal ( )
237
237
238
238
pd3 .SetOriginal (pd3 .Original )
239
- pd3 .SetOriginal ( nil )
239
+ pd3 .CleanOriginal ( )
240
240
241
241
pd4 .SetOriginal (pd4 .Original )
242
242
Original file line number Diff line number Diff line change @@ -81,15 +81,24 @@ func (o *ObjectToPack) WantWrite() bool {
81
81
// is nil Original is set but previous resolved values are kept
82
82
func (o * ObjectToPack ) SetOriginal (obj plumbing.EncodedObject ) {
83
83
o .Original = obj
84
+ o .SaveOriginalMetadata ()
85
+ }
84
86
85
- if obj != nil {
86
- o .originalSize = obj .Size ()
87
- o .originalType = obj .Type ()
88
- o .originalHash = obj .Hash ()
87
+ // SaveOriginalMetadata saves size, type and hash of Original object
88
+ func (o * ObjectToPack ) SaveOriginalMetadata () {
89
+ if o .Original != nil {
90
+ o .originalSize = o .Original .Size ()
91
+ o .originalType = o .Original .Type ()
92
+ o .originalHash = o .Original .Hash ()
89
93
o .resolvedOriginal = true
90
94
}
91
95
}
92
96
97
+ // CleanOriginal sets Original to nil
98
+ func (o * ObjectToPack ) CleanOriginal () {
99
+ o .Original = nil
100
+ }
101
+
93
102
func (o * ObjectToPack ) Type () plumbing.ObjectType {
94
103
if o .Original != nil {
95
104
return o .Original .Type ()
You can’t perform that action at this time.
0 commit comments