diff options
author | Frediano Ziglio <fziglio@redhat.com> | 2018-05-18 09:35:29 +0100 |
---|---|---|
committer | Frediano Ziglio <freddy77@gmail.com> | 2023-12-16 18:48:24 +0000 |
commit | 31e203e243942e8c617f0088901c0881ad7aee54 (patch) | |
tree | 3fb93549c1b9fc34ae956ef08c2fc85cb93f4d58 | |
parent | b0c67c3372ce771a26605ae5a1c801d6cd4dde47 (diff) |
SAVEid_duplicates
-rw-r--r-- | python_modules/marshal.py | 3 | ||||
-rw-r--r-- | python_modules/ptypes.py | 2 | ||||
-rw-r--r-- | python_modules/spice_parser.py | 4 | ||||
-rw-r--r-- | spice.proto | 3 |
4 files changed, 7 insertions, 5 deletions
diff --git a/python_modules/marshal.py b/python_modules/marshal.py index a2dfab6..79cadbb 100644 --- a/python_modules/marshal.py +++ b/python_modules/marshal.py @@ -186,6 +186,9 @@ def get_array_size(array, container_src): def write_array_marshaller(writer, member, array, container_src, scope): element_type = array.element_type + if member.has_attr("nomarshal"): + writer.comment("Don't marshall @nomarshal %s" % array.name).newline() + return if array.is_remaining_length(): writer.comment("Remaining data must be appended manually").newline() return diff --git a/python_modules/ptypes.py b/python_modules/ptypes.py index d68dc67..6cc77ed 100644 --- a/python_modules/ptypes.py +++ b/python_modules/ptypes.py @@ -942,7 +942,7 @@ class ContainerType(Type): break if member == None: - raise Exception("No member called %s found" % name) + raise Exception("No member called %s found %s" % (name, self.name)) if rest != None: return member.member_type.lookup_member(rest) diff --git a/python_modules/spice_parser.py b/python_modules/spice_parser.py index 1dc7e22..9ec6a63 100644 --- a/python_modules/spice_parser.py +++ b/python_modules/spice_parser.py @@ -92,8 +92,8 @@ def SPICE_BNF(): attributes = Group(ZeroOrMore(attribute)) arraySizeSpecImage = Group(image_size_ + lparen + integer + comma + identifier + comma + identifier + rparen) arraySizeSpecCString = Group(cstring_ + lparen + rparen) - arraySizeSpec = lbrack + Optional(identifier ^ integer ^ arraySizeSpecImage ^ arraySizeSpecCString, default="") + rbrack - variableDef = Group(typeSpec + Optional("*", default=None) + identifier + Optional(arraySizeSpec, default=None) + attributes - semi) \ + arraySizeSpec = lbrack + Optional(delimitedList(identifier,delim='.', combine=True) ^ integer ^ arraySizeSpecImage ^ arraySizeSpecCString, default="") + rbrack + variableDef = Group(typeSpec + Optional("*", default=None) + delimitedList(identifier,delim='.', combine=True) + Optional(arraySizeSpec, default=None) + attributes - semi) \ .setParseAction(parseVariableDef) switchCase = Group(Group(OneOrMore(default_.setParseAction(replaceWith(None)) + colon | Group(case_.suppress() + Optional("!", default="") + identifier) + colon)) + variableDef) \ diff --git a/spice.proto b/spice.proto index 63c639c..3042ac3 100644 --- a/spice.proto +++ b/spice.proto @@ -1295,10 +1295,9 @@ channel SmartcardChannel : BaseChannel { VscMessageHeader header; switch (header.type) { case ReaderAdd: - VscMessageReaderAdd add; case ATR: case APDU: - VscMessageATR atr_data; + uint8 raw_data[header.length] @end @nomarshal; case Error: VscMessageError error; } u @anon; |