diff options
author | Alexander Larsson <alexl@redhat.com> | 2010-06-30 16:49:50 +0200 |
---|---|---|
committer | Gerd Hoffmann <kraxel@redhat.com> | 2010-06-30 22:35:17 +0200 |
commit | 00e1caf45d1a5d40f428c3e43d2c79578c841e75 (patch) | |
tree | 40f290cde64de9a93e600522aed525749e78e13e /python_modules/demarshal.py | |
parent | 62d0c076eb2eb0f9954c3870f31b4dd685e5f95c (diff) | |
download | spice-00e1caf45d1a5d40f428c3e43d2c79578c841e75.tar.gz spice-00e1caf45d1a5d40f428c3e43d2c79578c841e75.tar.xz spice-00e1caf45d1a5d40f428c3e43d2c79578c841e75.zip |
Simplify SpiceLineAttr by removing unsed stuff
Also in new protocol don't send style data if not needed.
Diffstat (limited to 'python_modules/demarshal.py')
-rw-r--r-- | python_modules/demarshal.py | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/python_modules/demarshal.py b/python_modules/demarshal.py index 48b4e73e..b8195134 100644 --- a/python_modules/demarshal.py +++ b/python_modules/demarshal.py @@ -62,7 +62,8 @@ def write_read_primitive(writer, start, container, name, scope): writer.error_check("pos + %s > message_end" % m.member_type.get_fixed_nw_size()) var = "%s__value" % (name) - scope.variable_def(m.member_type.c_type(), var) + if not scope.variable_defined(var): + scope.variable_def(m.member_type.c_type(), var) writer.assign(var, "read_%s(pos)" % (m.member_type.primitive_type())) return var @@ -639,7 +640,9 @@ def write_switch_parser(writer, container, switch, dest, scope): elif t.is_pointer(): write_parse_pointer(writer, t, False, m.has_attr("c_ptr"), dest2, m.name, block) elif t.is_primitive(): - if not m.has_attr("zero"): + if m.has_attr("zero"): + writer.statement("consume_%s(&in)" % (t.primitive_type())) + else: writer.assign(dest2.get_ref(m.name), "consume_%s(&in)" % (t.primitive_type())) #TODO validate e.g. flags and enums elif t.is_array(): @@ -768,8 +771,8 @@ def write_member_parser(writer, container, member, dest, scope): write_parse_pointer(writer, t, member.has_end_attr(), member.has_attr("c_ptr"), dest, member.name, scope) elif t.is_primitive(): if member.has_attr("zero"): - pass - if member.has_end_attr(): + writer.statement("consume_%s(&in)" % t.primitive_type()) + elif member.has_end_attr(): writer.statement("*(%s *)end = consume_%s(&in)" % (t.c_type(), t.primitive_type())) writer.increment("end", t.sizeof()) else: |