qapi: add explicit null to string input and output visitors

This may be used for deprecated object properties that are kept for
backwards compatibility.

Backports commit a733371214b68881d84725a3c71f60e2faf3b8e2 from qemu
This commit is contained in:
Greg Kurz 2018-03-03 20:32:41 -05:00 committed by Lioncash
parent 18020c2c79
commit a125b35f1f
No known key found for this signature in database
GPG key ID: 4E3C3CC1031BA9C7

View file

@ -310,6 +310,16 @@ static void parse_type_number(Visitor *v, const char *name, double *obj,
*obj = val;
}
static void parse_type_null(Visitor *v, const char *name, Error **errp)
{
StringInputVisitor *siv = to_siv(v);
if (!siv->string || siv->string[0]) {
error_setg(errp, QERR_INVALID_PARAMETER_TYPE, name ? name : "null",
"null");
}
}
static void string_input_free(Visitor *v)
{
StringInputVisitor *siv = to_siv(v);
@ -333,6 +343,7 @@ Visitor *string_input_visitor_new(const char *str)
v->visitor.type_bool = parse_type_bool;
v->visitor.type_str = parse_type_str;
v->visitor.type_number = parse_type_number;
v->visitor.type_null = parse_type_null;
v->visitor.start_list = start_list;
v->visitor.next_list = next_list;
v->visitor.check_list = check_list;