diff options
author | Thomas Haller <thaller@redhat.com> | 2019-01-30 07:42:33 +0100 |
---|---|---|
committer | Beniamino Galvani <bgalvani@redhat.com> | 2019-03-27 10:47:24 +0100 |
commit | 5b51a1a9f711d7183ad2b11a1803714247b7faed (patch) | |
tree | bdc7e63dfdf43db2dd49f3f24e72997538031630 | |
parent | 95aa7ac91e8d1b4c98fd4d2f8f87bddc03921fbe (diff) | |
download | NetworkManager-5b51a1a9f711d7183ad2b11a1803714247b7faed.tar.gz |
libnm/lldp: cleanup asserting for valid NMLldpNeighbor agumentbg/lldp-enh-rh1652211
At a few places we checked whether neighbor->attrs was non-NULL.
That is not necessary, unless we'd like to catch some dangling/invalid
pointers. The attrs hash is always set otherwise.
Instead of just dropping the check, add a NM_IS_LLDP_NEIGHBOR() macro
(inline function).
-rw-r--r-- | libnm/nm-device.c | 31 |
1 files changed, 19 insertions, 12 deletions
diff --git a/libnm/nm-device.c b/libnm/nm-device.c index 9b19673d3d..2af578183b 100644 --- a/libnm/nm-device.c +++ b/libnm/nm-device.c @@ -2649,6 +2649,18 @@ nm_device_get_setting_type (NMDevice *device) return NM_DEVICE_GET_CLASS (device)->get_setting_type (device); } +/*****************************************************************************/ + +static gboolean +NM_IS_LLDP_NEIGHBOR (const NMLldpNeighbor *self) +{ + nm_assert ( !self + || ( self->refcount > 0 + && self->attrs)); + return self + && self->refcount > 0; +} + /** * nm_lldp_neighbor_new: * @@ -2699,8 +2711,7 @@ nm_lldp_neighbor_dup (NMLldpNeighbor *neighbor) void nm_lldp_neighbor_ref (NMLldpNeighbor *neighbor) { - g_return_if_fail (neighbor); - g_return_if_fail (neighbor->refcount > 0); + g_return_if_fail (NM_IS_LLDP_NEIGHBOR (neighbor)); neighbor->refcount++; } @@ -2717,11 +2728,9 @@ nm_lldp_neighbor_ref (NMLldpNeighbor *neighbor) void nm_lldp_neighbor_unref (NMLldpNeighbor *neighbor) { - g_return_if_fail (neighbor); - g_return_if_fail (neighbor->refcount > 0); + g_return_if_fail (NM_IS_LLDP_NEIGHBOR (neighbor)); if (--neighbor->refcount == 0) { - g_return_if_fail (neighbor->attrs); g_hash_table_unref (neighbor->attrs); g_free (neighbor); } @@ -2744,8 +2753,7 @@ nm_lldp_neighbor_get_attr_names (NMLldpNeighbor *neighbor) const char *key; GPtrArray *names; - g_return_val_if_fail (neighbor, NULL); - g_return_val_if_fail (neighbor->attrs, NULL); + g_return_val_if_fail (NM_IS_LLDP_NEIGHBOR (neighbor), NULL); names = g_ptr_array_new (); @@ -2776,7 +2784,7 @@ nm_lldp_neighbor_get_attr_string_value (NMLldpNeighbor *neighbor, const char *na { GVariant *variant; - g_return_val_if_fail (neighbor, FALSE); + g_return_val_if_fail (NM_IS_LLDP_NEIGHBOR (neighbor), FALSE); g_return_val_if_fail (name && name[0], FALSE); variant = g_hash_table_lookup (neighbor->attrs, name); @@ -2806,7 +2814,7 @@ nm_lldp_neighbor_get_attr_uint_value (NMLldpNeighbor *neighbor, const char *name { GVariant *variant; - g_return_val_if_fail (neighbor, FALSE); + g_return_val_if_fail (NM_IS_LLDP_NEIGHBOR (neighbor), FALSE); g_return_val_if_fail (name && name[0], FALSE); variant = g_hash_table_lookup (neighbor->attrs, name); @@ -2833,7 +2841,7 @@ nm_lldp_neighbor_get_attr_uint_value (NMLldpNeighbor *neighbor, const char *name GVariant * nm_lldp_neighbor_get_attr_value (NMLldpNeighbor *neighbor, const char *name) { - g_return_val_if_fail (neighbor, FALSE); + g_return_val_if_fail (NM_IS_LLDP_NEIGHBOR (neighbor), FALSE); g_return_val_if_fail (name && name[0], FALSE); return g_hash_table_lookup (neighbor->attrs, name); @@ -2855,7 +2863,7 @@ nm_lldp_neighbor_get_attr_type (NMLldpNeighbor *neighbor, const char *name) { GVariant *variant; - g_return_val_if_fail (neighbor, NULL); + g_return_val_if_fail (NM_IS_LLDP_NEIGHBOR (neighbor), NULL); g_return_val_if_fail (name && name[0], NULL); variant = g_hash_table_lookup (neighbor->attrs, name); @@ -2863,5 +2871,4 @@ nm_lldp_neighbor_get_attr_type (NMLldpNeighbor *neighbor, const char *name) return g_variant_get_type (variant); else return NULL; - } |