From cd070d6546976bea39e6a96ce7ab29014c1a502f Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Mon, 11 Dec 2023 12:09:13 +0100 Subject: [PATCH] libnm: use G_PARAM_EXPLICIT_NOTIFY for direct int32 properties For doing this, it's important to review that no set_property() implementation exists, which now would miss to emit the notification. --- src/libnm-core-impl/nm-setting-ip-config.c | 53 ++++++++++++---------- src/libnm-core-impl/nm-setting-private.h | 16 +++---- src/libnm-core-impl/tests/test-setting.c | 3 +- 3 files changed, 38 insertions(+), 34 deletions(-) diff --git a/src/libnm-core-impl/nm-setting-ip-config.c b/src/libnm-core-impl/nm-setting-ip-config.c index 75df0423f..3bbad4254 100644 --- a/src/libnm-core-impl/nm-setting-ip-config.c +++ b/src/libnm-core-impl/nm-setting-ip-config.c @@ -6437,7 +6437,7 @@ nm_setting_ip_config_class_init(NMSettingIPConfigClass *klass) G_MININT32, G_MAXINT32, 0, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); + G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY | G_PARAM_STATIC_STRINGS); /** * NMSettingIPConfig:addresses: (type GPtrArray(NMIPAddress)) @@ -6653,14 +6653,15 @@ nm_setting_ip_config_class_init(NMSettingIPConfigClass *klass) * * Since: 1.2 **/ - obj_properties[PROP_DAD_TIMEOUT] = g_param_spec_int( - NM_SETTING_IP_CONFIG_DAD_TIMEOUT, - "", - "", - -1, - NM_SETTING_IP_CONFIG_DAD_TIMEOUT_MAX, - -1, - G_PARAM_READWRITE | NM_SETTING_PARAM_FUZZY_IGNORE | G_PARAM_STATIC_STRINGS); + obj_properties[PROP_DAD_TIMEOUT] = + g_param_spec_int(NM_SETTING_IP_CONFIG_DAD_TIMEOUT, + "", + "", + -1, + NM_SETTING_IP_CONFIG_DAD_TIMEOUT_MAX, + -1, + G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY | NM_SETTING_PARAM_FUZZY_IGNORE + | G_PARAM_STATIC_STRINGS); /** * NMSettingIPConfig:dhcp-timeout: @@ -6671,14 +6672,15 @@ nm_setting_ip_config_class_init(NMSettingIPConfigClass *klass) * * Set to 2147483647 (MAXINT32) for infinity. **/ - obj_properties[PROP_DHCP_TIMEOUT] = g_param_spec_int( - NM_SETTING_IP_CONFIG_DHCP_TIMEOUT, - "", - "", - 0, - G_MAXINT32, - 0, - G_PARAM_READWRITE | NM_SETTING_PARAM_FUZZY_IGNORE | G_PARAM_STATIC_STRINGS); + obj_properties[PROP_DHCP_TIMEOUT] = + g_param_spec_int(NM_SETTING_IP_CONFIG_DHCP_TIMEOUT, + "", + "", + 0, + G_MAXINT32, + 0, + G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY | NM_SETTING_PARAM_FUZZY_IGNORE + | G_PARAM_STATIC_STRINGS); /** * NMSettingIPConfig:required-timeout: @@ -6703,14 +6705,15 @@ nm_setting_ip_config_class_init(NMSettingIPConfigClass *klass) * * Since: 1.34 **/ - obj_properties[PROP_REQUIRED_TIMEOUT] = g_param_spec_int( - NM_SETTING_IP_CONFIG_REQUIRED_TIMEOUT, - "", - "", - -1, - G_MAXINT32, - -1, - G_PARAM_READWRITE | NM_SETTING_PARAM_FUZZY_IGNORE | G_PARAM_STATIC_STRINGS); + obj_properties[PROP_REQUIRED_TIMEOUT] = + g_param_spec_int(NM_SETTING_IP_CONFIG_REQUIRED_TIMEOUT, + "", + "", + -1, + G_MAXINT32, + -1, + G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY | NM_SETTING_PARAM_FUZZY_IGNORE + | G_PARAM_STATIC_STRINGS); /** * NMSettingIPConfig:dhcp-iaid: diff --git a/src/libnm-core-impl/nm-setting-private.h b/src/libnm-core-impl/nm-setting-private.h index 906ad78d9..f31796a66 100644 --- a/src/libnm-core-impl/nm-setting-private.h +++ b/src/libnm-core-impl/nm-setting-private.h @@ -631,14 +631,14 @@ _nm_properties_override(GArray *properties_override, const NMSettInfoProperty *p G_STATIC_ASSERT((default_value) <= (gint64) (max_value)); \ G_STATIC_ASSERT((max_value) <= (gint64) G_MAXUINT32); \ \ - _param_spec = \ - g_param_spec_int("" prop_name "", \ - "", \ - "", \ - (min_value), \ - (max_value), \ - (default_value), \ - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | (param_flags)); \ + _param_spec = g_param_spec_int("" prop_name "", \ + "", \ + "", \ + (min_value), \ + (max_value), \ + (default_value), \ + G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY \ + | G_PARAM_STATIC_STRINGS | (param_flags)); \ \ (obj_properties)[(prop_id)] = _param_spec; \ \ diff --git a/src/libnm-core-impl/tests/test-setting.c b/src/libnm-core-impl/tests/test-setting.c index 8808b89b4..1a1df172a 100644 --- a/src/libnm-core-impl/tests/test-setting.c +++ b/src/libnm-core-impl/tests/test-setting.c @@ -4915,7 +4915,8 @@ check_done:; */ expected = NM_IN_SET(sip->property_type->direct_type, NM_VALUE_TYPE_BOOL, - NM_VALUE_TYPE_UINT32); + NM_VALUE_TYPE_UINT32, + NM_VALUE_TYPE_INT32); if (NM_FLAGS_HAS(sip->param_spec->flags, G_PARAM_EXPLICIT_NOTIFY)) { g_assert(expected);