diff options
author | Thomas Haller <thaller@redhat.com> | 2022-02-02 17:05:46 +0100 |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2022-02-09 19:13:04 +0100 |
commit | 5b3e96451b68e8ff38c4ecfb3c2cd6d74a2faf49 (patch) | |
tree | 4113db1b69423850e7d8035a2d3969e2e5d1b6ff | |
parent | 3996933c579a1eef59bcfc442644372ab19dd90c (diff) | |
download | NetworkManager-5b3e96451b68e8ff38c4ecfb3c2cd6d74a2faf49.tar.gz |
platform: drop lazy initialization _rules_init() of NMPRouteManager
Let's just always allocate the hash tables. We will likely need them,
and three hash tables are relatively cheap.
-rw-r--r-- | src/libnm-platform/nmp-route-manager.c | 49 |
1 files changed, 11 insertions, 38 deletions
diff --git a/src/libnm-platform/nmp-route-manager.c b/src/libnm-platform/nmp-route-manager.c index 3e83186ff7..3174eeef86 100644 --- a/src/libnm-platform/nmp-route-manager.c +++ b/src/libnm-platform/nmp-route-manager.c @@ -23,10 +23,6 @@ struct _NMPRouteManager { /*****************************************************************************/ -static void _rules_init(NMPRouteManager *self); - -/*****************************************************************************/ - #define _NMLOG_DOMAIN LOGD_PLATFORM #define _NMLOG_PREFIX_NAME "route-manager" @@ -328,8 +324,6 @@ nmp_route_manager_track_rule(NMPRouteManager *self, g_return_if_fail(user_tag); nm_assert(track_priority != G_MININT32); - _rules_init(self); - p_obj_stack = nmp_object_stackinit(&obj_stack, NMP_OBJECT_TYPE_ROUTING_RULE, routing_rule); nm_assert(nmp_object_is_visible(p_obj_stack)); @@ -477,8 +471,6 @@ nmp_route_manager_untrack_rule(NMPRouteManager *self, g_return_if_fail(routing_rule); g_return_if_fail(user_tag); - _rules_init(self); - p_obj_stack = nmp_object_stackinit(&obj_stack, NMP_OBJECT_TYPE_ROUTING_RULE, routing_rule); nm_assert(nmp_object_is_visible(p_obj_stack)); @@ -497,9 +489,6 @@ nmp_route_manager_set_dirty(NMPRouteManager *self, gconstpointer user_tag) g_return_if_fail(NMP_IS_ROUTE_MANAGER(self)); g_return_if_fail(user_tag); - if (!self->by_data) - return; - user_tag_data = g_hash_table_lookup(self->by_user_tag, &user_tag); if (!user_tag_data) return; @@ -520,9 +509,6 @@ nmp_route_manager_untrack_all(NMPRouteManager *self, g_return_if_fail(NMP_IS_ROUTE_MANAGER(self)); g_return_if_fail(user_tag); - if (!self->by_data) - return; - user_tag_data = g_hash_table_lookup(self->by_user_tag, &user_tag); if (!user_tag_data) return; @@ -552,9 +538,6 @@ nmp_route_manager_sync_rules(NMPRouteManager *self, gboolean keep_deleted_rules) g_return_if_fail(NMP_IS_ROUTE_MANAGER(self)); - if (!self->by_data) - return; - _LOGD("sync%s", keep_deleted_rules ? " (don't remove any rules)" : ""); pl_head_entry = nm_platform_lookup_obj_type(self->platform, NMP_OBJECT_TYPE_ROUTING_RULE); @@ -750,22 +733,6 @@ nmp_route_manager_track_rule_default(NMPRouteManager *self, } } -static void -_rules_init(NMPRouteManager *self) -{ - if (self->by_data) - return; - - self->by_data = - g_hash_table_new_full(_rules_data_hash, _rules_data_equal, NULL, _rules_data_destroy); - self->by_obj = - g_hash_table_new_full(_rules_obj_hash, _rules_obj_equal, NULL, _rules_obj_destroy); - self->by_user_tag = g_hash_table_new_full(_rules_user_tag_hash, - _rules_user_tag_equal, - NULL, - _rules_user_tag_destroy); -} - /*****************************************************************************/ NMPRouteManager * @@ -779,6 +746,14 @@ nmp_route_manager_new(NMPlatform *platform) *self = (NMPRouteManager){ .ref_count = 1, .platform = g_object_ref(platform), + .by_data = + g_hash_table_new_full(_rules_data_hash, _rules_data_equal, NULL, _rules_data_destroy), + .by_obj = + g_hash_table_new_full(_rules_obj_hash, _rules_obj_equal, NULL, _rules_obj_destroy), + .by_user_tag = g_hash_table_new_full(_rules_user_tag_hash, + _rules_user_tag_equal, + NULL, + _rules_user_tag_destroy), }; return self; } @@ -799,11 +774,9 @@ nmp_route_manager_unref(NMPRouteManager *self) if (--self->ref_count > 0) return; - if (self->by_data) { - g_hash_table_destroy(self->by_user_tag); - g_hash_table_destroy(self->by_obj); - g_hash_table_destroy(self->by_data); - } + g_hash_table_destroy(self->by_user_tag); + g_hash_table_destroy(self->by_obj); + g_hash_table_destroy(self->by_data); g_object_unref(self->platform); g_slice_free(NMPRouteManager, self); } |