Refactor unmarshalTOC to use a switch
This is a microptimization, we call strings.ToLower only once, but more importantly it will make it easier to add more fields. Signed-off-by: Miloslav Trmač <mitr@redhat.com>
This commit is contained in:
parent
16b831be1c
commit
8dd381ecf3
|
|
@ -823,14 +823,11 @@ func unmarshalToc(manifest []byte) (*internal.TOC, error) {
|
|||
iter := jsoniter.ParseBytes(jsoniter.ConfigFastest, manifest)
|
||||
|
||||
for field := iter.ReadObject(); field != ""; field = iter.ReadObject() {
|
||||
if strings.ToLower(field) == "version" {
|
||||
switch strings.ToLower(field) {
|
||||
case "version":
|
||||
toc.Version = iter.ReadInt()
|
||||
continue
|
||||
}
|
||||
if strings.ToLower(field) != "entries" {
|
||||
iter.Skip()
|
||||
continue
|
||||
}
|
||||
|
||||
case "entries":
|
||||
for iter.ReadArray() {
|
||||
var m internal.FileMetadata
|
||||
for field := iter.ReadObject(); field != ""; field = iter.ReadObject() {
|
||||
|
|
@ -899,6 +896,10 @@ func unmarshalToc(manifest []byte) (*internal.TOC, error) {
|
|||
}
|
||||
toc.Entries = append(toc.Entries, m)
|
||||
}
|
||||
|
||||
default:
|
||||
iter.Skip()
|
||||
}
|
||||
}
|
||||
|
||||
// validate there is no extra data in the provided input. This is a security measure to avoid
|
||||
|
|
|
|||
Loading…
Reference in New Issue