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.
This commit is contained in:
Alexander Larsson 2010-06-29 18:13:07 +02:00 committed by Marc-André Lureau
parent f2d7fbdb19
commit dcaba909d3

View File

@ -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())