summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2021-06-17 22:01:34 +0200
committerThomas Haller <thaller@redhat.com>2021-06-23 12:13:39 +0200
commit21638c54b0ab811eddd22fcb565fc988e19fad4e (patch)
tree3363cf3813686335fcd9d0d467171439fede1dfb
parent8081e39ab680644b0e0a375247b9a95793d9aa94 (diff)
libnm: simplify assertions for valid NMSettInfoProperty
-rw-r--r--src/libnm-core-impl/nm-setting.c34
1 files changed, 15 insertions, 19 deletions
diff --git a/src/libnm-core-impl/nm-setting.c b/src/libnm-core-impl/nm-setting.c
index ec4557cc60..ee65f0f0e0 100644
--- a/src/libnm-core-impl/nm-setting.c
+++ b/src/libnm-core-impl/nm-setting.c
@@ -178,33 +178,29 @@ _gprop_to_dbus_fcn_flags(const GValue *val)
gboolean
_nm_properties_override_assert(const NMSettInfoProperty *prop_info)
{
+#if NM_MORE_ASSERTS
nm_assert(prop_info);
nm_assert((!!prop_info->name) != (!!prop_info->param_spec));
nm_assert(!prop_info->param_spec || !prop_info->name
|| nm_streq0(prop_info->name, prop_info->param_spec->name));
-#define _PROPERT_EXTRA(prop_info, member) \
- ({ \
- const NMSettInfoProperty *_prop_info = (prop_info); \
- \
- (_prop_info->property_type ? _prop_info->property_type->member : 0); \
- })
+ if (prop_info->property_type) {
+ const NMSettInfoPropertType *property_type = prop_info->property_type;
- nm_assert(!_PROPERT_EXTRA(prop_info, gprop_from_dbus_fcn)
- || _PROPERT_EXTRA(prop_info, dbus_type));
- nm_assert(!_PROPERT_EXTRA(prop_info, from_dbus_fcn) || _PROPERT_EXTRA(prop_info, dbus_type));
- nm_assert(!_PROPERT_EXTRA(prop_info, to_dbus_fcn) || _PROPERT_EXTRA(prop_info, dbus_type));
+ /* we always require a dbus_type. */
+ nm_assert(property_type->dbus_type);
- nm_assert(!_PROPERT_EXTRA(prop_info, to_dbus_fcn)
- || !_PROPERT_EXTRA(prop_info, gprop_to_dbus_fcn));
- nm_assert(!_PROPERT_EXTRA(prop_info, from_dbus_fcn)
- || !_PROPERT_EXTRA(prop_info, gprop_from_dbus_fcn));
-
- nm_assert(!_PROPERT_EXTRA(prop_info, gprop_to_dbus_fcn) || prop_info->param_spec);
- nm_assert(!_PROPERT_EXTRA(prop_info, gprop_from_dbus_fcn) || prop_info->param_spec);
-
-#undef _PROPERT_EXTRA
+ /* {to,from}_dbus_fcn and gprop_{to,from}_dbus_fcn cannot both be set. */
+ nm_assert(!property_type->to_dbus_fcn || !property_type->gprop_to_dbus_fcn);
+ nm_assert(!property_type->from_dbus_fcn || !property_type->gprop_from_dbus_fcn);
+ if (!prop_info->param_spec) {
+ /* if we don't have a param_spec, we cannot have gprop_{to,from}_dbus_fcn. */
+ nm_assert(!property_type->gprop_to_dbus_fcn);
+ nm_assert(!property_type->gprop_from_dbus_fcn);
+ }
+ }
+#endif
return TRUE;
}