summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2023-01-05 11:32:14 +0100
committerThomas Haller <thaller@redhat.com>2023-11-22 16:30:53 +0100
commitf1b89fccdf027f2cb1fbdeaf22f4aeebe6ed0e09 (patch)
tree93577c56e97804f2f2099a94ae7b6c5978c8a423
parentf9cf8b43c625caf54abe467bf3fdd26c564833c6 (diff)
core: use NMPtrArray in nm_l3_config_data_add_dependent_onlink_routes()th/nm-ptr-array
-rw-r--r--src/core/nm-l3-config-data.c31
1 files changed, 15 insertions, 16 deletions
diff --git a/src/core/nm-l3-config-data.c b/src/core/nm-l3-config-data.c
index cccb23a60b..f0456c90a6 100644
--- a/src/core/nm-l3-config-data.c
+++ b/src/core/nm-l3-config-data.c
@@ -8,6 +8,7 @@
#include "nm-compat-headers/linux/if_addr.h"
#include <linux/rtnetlink.h>
+#include "libnm-glib-aux/nm-ptr-array.h"
#include "libnm-core-intern/nm-core-internal.h"
#include "libnm-glib-aux/nm-enum-utils.h"
#include "libnm-glib-aux/nm-ref-string.h"
@@ -2541,11 +2542,12 @@ nm_l3_config_data_get_blacklisted_ip4_routes(const NML3ConfigData *self, gboolea
void
nm_l3_config_data_add_dependent_onlink_routes(NML3ConfigData *self, int addr_family)
{
- gs_unref_ptrarray GPtrArray *extra_onlink_routes = NULL;
+ NMPtrArrayStack extra_onlink_routes_stack = NM_PTR_ARRAY_STACK_INIT(nmp_object_unref);
+ nm_auto_ptrarray NMPtrArray *extra_onlink_routes = &extra_onlink_routes_stack.arr;
const NMPObject *obj_src;
NMDedupMultiIter iter;
int IS_IPv4;
- guint i;
+ gsize i;
if (addr_family == AF_UNSPEC) {
nm_l3_config_data_add_dependent_onlink_routes(self, AF_INET);
@@ -2591,20 +2593,17 @@ nm_l3_config_data_add_dependent_onlink_routes(NML3ConfigData *self, int addr_fam
}
/* we cannot add the route right away, because that invalidates the iteration. */
- if (!extra_onlink_routes)
- extra_onlink_routes = g_ptr_array_new_with_free_func((GDestroyNotify) nmp_object_unref);
- g_ptr_array_add(extra_onlink_routes, new_route);
- }
- if (extra_onlink_routes) {
- for (i = 0; i < extra_onlink_routes->len; i++) {
- nm_l3_config_data_add_route_full(self,
- addr_family,
- extra_onlink_routes->pdata[i],
- NULL,
- NM_L3_CONFIG_ADD_FLAGS_EXCLUSIVE,
- NULL,
- NULL);
- }
+ nm_ptr_array_add(&extra_onlink_routes, new_route);
+ }
+
+ for (i = 0; i < extra_onlink_routes->len; i++) {
+ nm_l3_config_data_add_route_full(self,
+ addr_family,
+ extra_onlink_routes->ptrs[i],
+ NULL,
+ NM_L3_CONFIG_ADD_FLAGS_EXCLUSIVE,
+ NULL,
+ NULL);
}
}