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
} else {
if a.MaxVendorId == 0 {
for id, _ := range a.AllowedVendors {
if id > a.MaxVendorId {
a.MaxVendorId = id
}
}
}
bitSize += a.MaxVendorId
}

View File

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

View File

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