|
|
|
@ -87,7 +87,13 @@ func (this *Generator) Generate(protocol *Protocol) (n int, err error) {
|
|
|
|
n += nn; if err != nil { return n, err }
|
|
|
|
n += nn; if err != nil { return n, err }
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// TODO: pull items from the request queue
|
|
|
|
// request queue
|
|
|
|
|
|
|
|
for {
|
|
|
|
|
|
|
|
hash, typ, ok := this.pullDecodeBranchRequest()
|
|
|
|
|
|
|
|
if !ok { break }
|
|
|
|
|
|
|
|
nn, err := this.generateDecodeBranch(hash, typ)
|
|
|
|
|
|
|
|
n += nn; if err != nil { return n, err }
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return n, nil
|
|
|
|
return n, nil
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@ -491,7 +497,7 @@ func (this *Generator) generateDecodeValue(typ Type, valueSource, tagSource stri
|
|
|
|
}
|
|
|
|
}
|
|
|
|
case TypeArray:
|
|
|
|
case TypeArray:
|
|
|
|
// OTA: <length: UN> <elementTag: tape.Tag> <values>*
|
|
|
|
// OTA: <length: UN> <elementTag: tape.Tag> <values>*
|
|
|
|
nn, err := this.generateDecodeBranch(typ, valueSource, tagSource)
|
|
|
|
nn, err := this.generateDecodeBranchCall(typ, valueSource, tagSource)
|
|
|
|
n += nn; if err != nil { return n, err }
|
|
|
|
n += nn; if err != nil { return n, err }
|
|
|
|
case TypeTable:
|
|
|
|
case TypeTable:
|
|
|
|
// KTV: <length: UN> (<key: U16> <tag: Tag> <value>)*
|
|
|
|
// KTV: <length: UN> (<key: U16> <tag: Tag> <value>)*
|
|
|