qapi: Change data type of the FOO_lookup generated for enum FOO
Currently, a FOO_lookup is an array of strings terminated by a NULL
sentinel.
A future patch will generate enums with "holes". NULL-termination
will cease to work then.
To prepare for that, store the length in the FOO_lookup by wrapping it
in a struct and adding a member for the length.
The sentinel will be dropped next.
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-Id: <20170822132255.23945-13-marcandre.lureau@redhat.com>
[Basically redone]
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Message-Id: <1503564371-26090-16-git-send-email-armbru@redhat.com>
[Rebased]
diff --git a/hmp.c b/hmp.c
index 30819fe..cd046c6 100644
--- a/hmp.c
+++ b/hmp.c
@@ -1528,7 +1528,7 @@
MigrationCapabilityStatusList *caps = g_malloc0(sizeof(*caps));
int val;
- val = qapi_enum_parse(MigrationCapability_lookup, cap, -1, &err);
+ val = qapi_enum_parse(&MigrationCapability_lookup, cap, -1, &err);
if (val < 0) {
goto end;
}
@@ -1557,7 +1557,7 @@
Error *err = NULL;
int val, ret;
- val = qapi_enum_parse(MigrationParameter_lookup, param, -1, &err);
+ val = qapi_enum_parse(&MigrationParameter_lookup, param, -1, &err);
if (val < 0) {
goto cleanup;
}
@@ -1735,7 +1735,7 @@
} else {
if (read_only) {
read_only_mode =
- qapi_enum_parse(BlockdevChangeReadOnlyMode_lookup,
+ qapi_enum_parse(&BlockdevChangeReadOnlyMode_lookup,
read_only,
BLOCKDEV_CHANGE_READ_ONLY_MODE_RETAIN, &err);
if (err) {