提交 1c236ba5 编写于 作者: M Markus Armbruster

qapi: Avoid unnecessary use of enum lookup table's sentinel

Currently, the FOO_lookup[] generated for QAPI enum types are
terminated by a NULL sentinel.

A future patch will generate enums with "holes".  NULL-termination
will cease to work then.

To prepare for that, replace "have we reached the sentinel?"
predicates by "have we reached the FOO__MAX value?" predicates.
Signed-off-by: NMarkus Armbruster <armbru@redhat.com>
Message-Id: <1503564371-26090-12-git-send-email-armbru@redhat.com>
Reviewed-by: NMarc-André Lureau <marcandre.lureau@redhat.com>
上级 113e47ae
...@@ -3249,7 +3249,7 @@ void netdev_add_completion(ReadLineState *rs, int nb_args, const char *str) ...@@ -3249,7 +3249,7 @@ void netdev_add_completion(ReadLineState *rs, int nb_args, const char *str)
} }
len = strlen(str); len = strlen(str);
readline_set_completion_index(rs, len); readline_set_completion_index(rs, len);
for (i = 0; NetClientDriver_lookup[i]; i++) { for (i = 0; i < NET_CLIENT_DRIVER__MAX; i++) {
add_completion_option(rs, str, NetClientDriver_lookup[i]); add_completion_option(rs, str, NetClientDriver_lookup[i]);
} }
} }
...@@ -3537,7 +3537,7 @@ void watchdog_action_completion(ReadLineState *rs, int nb_args, const char *str) ...@@ -3537,7 +3537,7 @@ void watchdog_action_completion(ReadLineState *rs, int nb_args, const char *str)
return; return;
} }
readline_set_completion_index(rs, strlen(str)); readline_set_completion_index(rs, strlen(str));
for (i = 0; WatchdogExpirationAction_lookup[i]; i++) { for (i = 0; i < WATCHDOG_EXPIRATION_ACTION__MAX; i++) {
add_completion_option(rs, str, WatchdogExpirationAction_lookup[i]); add_completion_option(rs, str, WatchdogExpirationAction_lookup[i]);
} }
} }
......
...@@ -382,7 +382,7 @@ static void test_visitor_in_enum(TestInputVisitorData *data, ...@@ -382,7 +382,7 @@ static void test_visitor_in_enum(TestInputVisitorData *data,
Visitor *v; Visitor *v;
EnumOne i; EnumOne i;
for (i = 0; EnumOne_lookup[i]; i++) { for (i = 0; i < ENUM_ONE__MAX; i++) {
EnumOne res = -1; EnumOne res = -1;
v = visitor_input_test_init(data, "%s", EnumOne_lookup[i]); v = visitor_input_test_init(data, "%s", EnumOne_lookup[i]);
......
...@@ -279,7 +279,7 @@ static void test_visitor_in_enum(TestInputVisitorData *data, ...@@ -279,7 +279,7 @@ static void test_visitor_in_enum(TestInputVisitorData *data,
Visitor *v; Visitor *v;
EnumOne i; EnumOne i;
for (i = 0; EnumOne_lookup[i]; i++) { for (i = 0; i < ENUM_ONE__MAX; i++) {
EnumOne res = -1; EnumOne res = -1;
v = visitor_input_test_init(data, EnumOne_lookup[i]); v = visitor_input_test_init(data, EnumOne_lookup[i]);
......
...@@ -61,7 +61,7 @@ int index_from_key(const char *key, size_t key_length) ...@@ -61,7 +61,7 @@ int index_from_key(const char *key, size_t key_length)
{ {
int i; int i;
for (i = 0; QKeyCode_lookup[i] != NULL; i++) { for (i = 0; i < Q_KEY_CODE__MAX; i++) {
if (!strncmp(key, QKeyCode_lookup[i], key_length) && if (!strncmp(key, QKeyCode_lookup[i], key_length) &&
!QKeyCode_lookup[i][key_length]) { !QKeyCode_lookup[i][key_length]) {
break; break;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册