Clear omitted fields (#20575)

Searched `msg:"[a-zA-Z0-9]*,omitempty` through the codebase.

Uses latest tinylib master.
This commit is contained in:
Klaus Post
2024-10-22 08:30:50 -07:00
committed by GitHub
parent 96ca402dcd
commit 51410c9023
11 changed files with 250 additions and 4 deletions

View File

@@ -561,6 +561,8 @@ func (z *ObjectPartInfo) DecodeMsg(dc *msgp.Reader) (err error) {
err = msgp.WrapError(err)
return
}
var zb0001Mask uint8 /* 3 bits */
_ = zb0001Mask
for zb0001 > 0 {
zb0001--
field, err = dc.ReadMapKeyPtr()
@@ -605,6 +607,7 @@ func (z *ObjectPartInfo) DecodeMsg(dc *msgp.Reader) (err error) {
err = msgp.WrapError(err, "Index")
return
}
zb0001Mask |= 0x1
case "crc":
var zb0002 uint32
zb0002, err = dc.ReadMapHeader()
@@ -635,12 +638,14 @@ func (z *ObjectPartInfo) DecodeMsg(dc *msgp.Reader) (err error) {
}
z.Checksums[za0001] = za0002
}
zb0001Mask |= 0x2
case "err":
z.Error, err = dc.ReadString()
if err != nil {
err = msgp.WrapError(err, "Error")
return
}
zb0001Mask |= 0x4
default:
err = dc.Skip()
if err != nil {
@@ -649,6 +654,18 @@ func (z *ObjectPartInfo) DecodeMsg(dc *msgp.Reader) (err error) {
}
}
}
// Clear omitted fields.
if zb0001Mask != 0x7 {
if (zb0001Mask & 0x1) == 0 {
z.Index = nil
}
if (zb0001Mask & 0x2) == 0 {
z.Checksums = nil
}
if (zb0001Mask & 0x4) == 0 {
z.Error = ""
}
}
return
}
@@ -850,6 +867,8 @@ func (z *ObjectPartInfo) UnmarshalMsg(bts []byte) (o []byte, err error) {
err = msgp.WrapError(err)
return
}
var zb0001Mask uint8 /* 3 bits */
_ = zb0001Mask
for zb0001 > 0 {
zb0001--
field, bts, err = msgp.ReadMapKeyZC(bts)
@@ -894,6 +913,7 @@ func (z *ObjectPartInfo) UnmarshalMsg(bts []byte) (o []byte, err error) {
err = msgp.WrapError(err, "Index")
return
}
zb0001Mask |= 0x1
case "crc":
var zb0002 uint32
zb0002, bts, err = msgp.ReadMapHeaderBytes(bts)
@@ -924,12 +944,14 @@ func (z *ObjectPartInfo) UnmarshalMsg(bts []byte) (o []byte, err error) {
}
z.Checksums[za0001] = za0002
}
zb0001Mask |= 0x2
case "err":
z.Error, bts, err = msgp.ReadStringBytes(bts)
if err != nil {
err = msgp.WrapError(err, "Error")
return
}
zb0001Mask |= 0x4
default:
bts, err = msgp.Skip(bts)
if err != nil {
@@ -938,6 +960,18 @@ func (z *ObjectPartInfo) UnmarshalMsg(bts []byte) (o []byte, err error) {
}
}
}
// Clear omitted fields.
if zb0001Mask != 0x7 {
if (zb0001Mask & 0x1) == 0 {
z.Index = nil
}
if (zb0001Mask & 0x2) == 0 {
z.Checksums = nil
}
if (zb0001Mask & 0x4) == 0 {
z.Error = ""
}
}
o = bts
return
}