mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-03 15:53:54 -06:00
qapi: Add visitor for implicit structs
These can be used when an embedded struct is parsed and members not belonging to the struct may be present in the input (e.g. parsing a flat namespace QMP union, where fields from both the base and one of the alternative types are mixed in the JSON object) Signed-off-by: Kevin Wolf <kwolf@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com>
This commit is contained in:
parent
51631493e4
commit
761d524dbc
4 changed files with 37 additions and 0 deletions
|
@ -45,6 +45,22 @@ void visit_end_struct(Visitor *v, Error **errp)
|
|||
v->end_struct(v, errp);
|
||||
}
|
||||
|
||||
void visit_start_implicit_struct(Visitor *v, void **obj, size_t size,
|
||||
Error **errp)
|
||||
{
|
||||
if (!error_is_set(errp) && v->start_implicit_struct) {
|
||||
v->start_implicit_struct(v, obj, size, errp);
|
||||
}
|
||||
}
|
||||
|
||||
void visit_end_implicit_struct(Visitor *v, Error **errp)
|
||||
{
|
||||
assert(!error_is_set(errp));
|
||||
if (v->end_implicit_struct) {
|
||||
v->end_implicit_struct(v, errp);
|
||||
}
|
||||
}
|
||||
|
||||
void visit_start_list(Visitor *v, const char *name, Error **errp)
|
||||
{
|
||||
if (!error_is_set(errp)) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue