Compute MaxVendor and MaxVendorIdLI at encoding if not explicitly set

This commit is contained in:
Thomas LAY
2021-02-18 10:10:02 +01:00
parent d6069d62fa
commit e60298c839
3 changed files with 29 additions and 1 deletions

View File

@@ -43,6 +43,13 @@ func (a *AllowedVendors) Encode() string {
} }
bitSize += entriesSize bitSize += entriesSize
} else { } else {
if a.MaxVendorId == 0 {
for id, _ := range a.AllowedVendors {
if id > a.MaxVendorId {
a.MaxVendorId = id
}
}
}
bitSize += a.MaxVendorId bitSize += a.MaxVendorId
} }

View File

@@ -180,6 +180,13 @@ func (c *CoreString) Encode() string {
} }
bitSize += +entriesSize bitSize += +entriesSize
} else { } else {
if c.MaxVendorId == 0 {
for id, _ := range c.VendorsConsent {
if id > c.MaxVendorId {
c.MaxVendorId = id
}
}
}
bitSize += c.MaxVendorId bitSize += c.MaxVendorId
} }
@@ -196,6 +203,13 @@ func (c *CoreString) Encode() string {
} }
bitSize += entriesSize bitSize += entriesSize
} else { } else {
if c.MaxVendorIdLI == 0 {
for id, _ := range c.VendorsLITransparency {
if id > c.MaxVendorIdLI {
c.MaxVendorIdLI = id
}
}
}
bitSize += c.MaxVendorIdLI bitSize += c.MaxVendorIdLI
} }
@@ -203,7 +217,7 @@ func (c *CoreString) Encode() string {
for _, res := range c.PubRestrictions { for _, res := range c.PubRestrictions {
entriesSize := 20 entriesSize := 20
for _, entry := range res.RangeEntries { for _, entry := range res.RangeEntries {
entriesSize += 1 entriesSize++
if entry.EndVendorID > entry.StartVendorID { if entry.EndVendorID > entry.StartVendorID {
entriesSize += 16 * 2 entriesSize += 16 * 2
} else { } else {

View File

@@ -43,6 +43,13 @@ func (d *DisclosedVendors) Encode() string {
} }
bitSize += entriesSize bitSize += entriesSize
} else { } else {
if d.MaxVendorId == 0 {
for id, _ := range d.DisclosedVendors {
if id > d.MaxVendorId {
d.MaxVendorId = id
}
}
}
bitSize += d.MaxVendorId bitSize += d.MaxVendorId
} }