diff options
author | Alexander Larsson <alexl@redhat.com> | 2010-06-29 18:13:07 +0200 |
---|---|---|
committer | Marc-André Lureau <marcandre.lureau@gmail.com> | 2012-03-20 15:25:46 +0100 |
commit | dcaba909d3d68f7dcb3077de083724daf4b6fd29 (patch) | |
tree | 988f9f421b18f3ef424f482fd9f5c67bf006bf8c /python_modules/demarshal.py | |
parent | f2d7fbdb19cd9758346316e63bcbd87b7dedd5ff (diff) | |
download | spice-protocol-dcaba909d3d68f7dcb3077de083724daf4b6fd29.tar.gz spice-protocol-dcaba909d3d68f7dcb3077de083724daf4b6fd29.tar.xz spice-protocol-dcaba909d3d68f7dcb3077de083724daf4b6fd29.zip |
demarshaller: Don't parse @zero members
These just write zeros at the right place in the network protocol
typically for old back-compat things. We don't want to read these
back in.
Diffstat (limited to 'python_modules/demarshal.py')
-rw-r--r-- | python_modules/demarshal.py | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/python_modules/demarshal.py b/python_modules/demarshal.py index 0138ebe..d8b8ea9 100644 --- a/python_modules/demarshal.py +++ b/python_modules/demarshal.py @@ -638,7 +638,8 @@ def write_switch_parser(writer, container, switch, dest, scope): elif t.is_pointer(): write_parse_pointer(writer, t, False, dest2, m.name, block) elif t.is_primitive(): - writer.assign(dest2.get_ref(m.name), "consume_%s(&in)" % (t.primitive_type())) + if not m.has_attr("zero"): + writer.assign(dest2.get_ref(m.name), "consume_%s(&in)" % (t.primitive_type())) #TODO validate e.g. flags and enums elif t.is_array(): nelements = read_array_len(writer, m.name, t, dest, block) @@ -757,6 +758,8 @@ def write_member_parser(writer, container, member, dest, scope): else: write_parse_pointer(writer, t, member.has_end_attr(), dest, member.name, scope) elif t.is_primitive(): + if member.has_attr("zero"): + pass if member.has_end_attr(): writer.statement("*(%s *)end = consume_%s(&in)" % (t.c_type(), t.primitive_type())) writer.increment("end", t.sizeof()) |