qmp-input: Don't consume input when checking has_member
commite5826a2fd727f0be54a81083f31fe02a275465cd
authorEric Blake <eblake@redhat.com>
Thu, 28 Apr 2016 21:45:15 +0000 (28 15:45 -0600)
committerMarkus Armbruster <armbru@redhat.com>
Thu, 12 May 2016 07:47:54 +0000 (12 09:47 +0200)
tree97132b9ee75efe7e9945f3a89262bdd39fe9e96e
parent240f64b6dc3346d044d7beb7cc3a53668ce47384
qmp-input: Don't consume input when checking has_member

Commit e8316d7 mistakenly passed consume=true within
qmp_input_optional() when checking if an optional member was
present, but the mistake was silently ignored since the code
happily let us extract a member more than once.  Fix
qmp_input_optional() to not consume anything, then tighten up
the input visitor to ensure that a member is consumed exactly
once (all generated code follows this pattern; and the new
assert will catch any hand-written code that tries to visit
the same key more than once).

Signed-off-by: Eric Blake <eblake@redhat.com>
Message-Id: <1461879932-9020-8-git-send-email-eblake@redhat.com>
Signed-off-by: Markus Armbruster <armbru@redhat.com>
qapi/qmp-input-visitor.c