all: don't use NM_FLAGS_HAS() with non-constant argument
NM_FLAGS_HAS() uses a static-assert that the second argument is a single flag (power of two). With a single flag, NM_FLAGS_HAS(), NM_FLAGS_ANY() and NM_FLAGS_ALL() are all identical. The second argument must be a compile time constant, and if that is not the case, one must not use NM_FLAGS_HAS(). Use NM_FLAGS_ANY() in these cases.
This commit is contained in:
@@ -537,7 +537,7 @@ _nm_setting_bond_option_supported (const char *option, NMBondMode mode)
|
|||||||
|
|
||||||
for (i = 0; i < G_N_ELEMENTS (bond_unsupp_modes); i++) {
|
for (i = 0; i < G_N_ELEMENTS (bond_unsupp_modes); i++) {
|
||||||
if (nm_streq (option, bond_unsupp_modes[i].option))
|
if (nm_streq (option, bond_unsupp_modes[i].option))
|
||||||
return !NM_FLAGS_HAS (bond_unsupp_modes[i].unsupp_modes, BIT (mode));
|
return !NM_FLAGS_ANY (bond_unsupp_modes[i].unsupp_modes, BIT (mode));
|
||||||
}
|
}
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
@@ -12246,7 +12246,7 @@ nm_device_check_connection_available (NMDevice *self,
|
|||||||
|
|
||||||
for (i = 0; i <= NM_DEVICE_CHECK_CON_AVAILABLE_ALL; i++) {
|
for (i = 0; i <= NM_DEVICE_CHECK_CON_AVAILABLE_ALL; i++) {
|
||||||
for (j = 1; j <= NM_DEVICE_CHECK_CON_AVAILABLE_ALL; j <<= 1) {
|
for (j = 1; j <= NM_DEVICE_CHECK_CON_AVAILABLE_ALL; j <<= 1) {
|
||||||
if (NM_FLAGS_HAS (i, j)) {
|
if (NM_FLAGS_ANY (i, j)) {
|
||||||
k = i & ~j;
|
k = i & ~j;
|
||||||
nm_assert ( available_all[i] == available_all[k]
|
nm_assert ( available_all[i] == available_all[k]
|
||||||
|| available_all[i]);
|
|| available_all[i]);
|
||||||
|
@@ -123,7 +123,7 @@ build_message (GPtrArray *fields, AuditBackend backend)
|
|||||||
for (i = 0; i < fields->len; i++) {
|
for (i = 0; i < fields->len; i++) {
|
||||||
field = fields->pdata[i];
|
field = fields->pdata[i];
|
||||||
|
|
||||||
if (!NM_FLAGS_HAS (field->backends, backend))
|
if (!NM_FLAGS_ANY (field->backends, backend))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (first)
|
if (first)
|
||||||
|
@@ -663,7 +663,7 @@ _nm_log_impl (const char *file,
|
|||||||
NMLogDomain dom = dom_all & _nm_logging_enabled_state[level];
|
NMLogDomain dom = dom_all & _nm_logging_enabled_state[level];
|
||||||
|
|
||||||
for (diter = &global.domain_desc[0]; diter->name; diter++) {
|
for (diter = &global.domain_desc[0]; diter->name; diter++) {
|
||||||
if (!NM_FLAGS_HAS (dom_all, diter->num))
|
if (!NM_FLAGS_ANY (dom_all, diter->num))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
/* construct a list of all domains (not only the enabled ones).
|
/* construct a list of all domains (not only the enabled ones).
|
||||||
@@ -681,7 +681,7 @@ _nm_log_impl (const char *file,
|
|||||||
g_string_append (s_domain_all, diter->name);
|
g_string_append (s_domain_all, diter->name);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (NM_FLAGS_HAS (dom, diter->num)) {
|
if (NM_FLAGS_ANY (dom, diter->num)) {
|
||||||
if (i_domain > 0) {
|
if (i_domain > 0) {
|
||||||
/* SYSLOG_FACILITY is specified multiple times for each domain that is actually enabled. */
|
/* SYSLOG_FACILITY is specified multiple times for each domain that is actually enabled. */
|
||||||
_iovec_set_format_a (iov++, _MAX_LEN (30, diter->name), "SYSLOG_FACILITY=%s", diter->name);
|
_iovec_set_format_a (iov++, _MAX_LEN (30, diter->name), "SYSLOG_FACILITY=%s", diter->name);
|
||||||
|
@@ -283,7 +283,7 @@ typedef enum {
|
|||||||
|
|
||||||
#define FOR_EACH_DELAYED_ACTION(iflags, flags_all) \
|
#define FOR_EACH_DELAYED_ACTION(iflags, flags_all) \
|
||||||
for ((iflags) = (DelayedActionType) 0x1LL; (iflags) <= DELAYED_ACTION_TYPE_MAX; (iflags) <<= 1) \
|
for ((iflags) = (DelayedActionType) 0x1LL; (iflags) <= DELAYED_ACTION_TYPE_MAX; (iflags) <<= 1) \
|
||||||
if (NM_FLAGS_HAS (flags_all, iflags))
|
if (NM_FLAGS_ANY (flags_all, iflags))
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
/* Negative values are errors from kernel. Add dummy member to
|
/* Negative values are errors from kernel. Add dummy member to
|
||||||
|
@@ -200,8 +200,8 @@ _stack_current_ns_types (NMPNetns *netns, int ns_types)
|
|||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < G_N_ELEMENTS (ns_types_check); i++) {
|
for (i = 0; i < G_N_ELEMENTS (ns_types_check); i++) {
|
||||||
if ( NM_FLAGS_HAS (ns_types, ns_types_check[i])
|
if ( NM_FLAGS_ANY (ns_types, ns_types_check[i])
|
||||||
&& NM_FLAGS_HAS (info->ns_types, ns_types_check[i])) {
|
&& NM_FLAGS_ANY (info->ns_types, ns_types_check[i])) {
|
||||||
res = NM_FLAGS_SET (res, ns_types_check[i]);
|
res = NM_FLAGS_SET (res, ns_types_check[i]);
|
||||||
ns_types = NM_FLAGS_UNSET (ns_types, ns_types_check[i]);
|
ns_types = NM_FLAGS_UNSET (ns_types, ns_types_check[i]);
|
||||||
}
|
}
|
||||||
|
@@ -2230,7 +2230,7 @@ test_netns_push (gpointer fixture, gconstpointer test_data)
|
|||||||
p = pl_base;
|
p = pl_base;
|
||||||
for (j = nstack; j >= 1; ) {
|
for (j = nstack; j >= 1; ) {
|
||||||
j--;
|
j--;
|
||||||
if (NM_FLAGS_HAS (stack[j].ns_types, ns_type)) {
|
if (NM_FLAGS_ANY (stack[j].ns_types, ns_type)) {
|
||||||
p = stack[j].pl;
|
p = stack[j].pl;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user