diff options
author | Reuben Thomas <rrt@sc3d.org> | 2021-11-08 11:23:06 +0000 |
---|---|---|
committer | Reuben Thomas <rrt@sc3d.org> | 2021-11-08 11:23:06 +0000 |
commit | b459f39b30bf66aedcce4db2a78b8df27375774c (patch) | |
tree | 4392852948861a666e0e8fe56c61297859f26954 | |
parent | 3421ca92db5fb26d88f4e66e9129ee430cf1f4e1 (diff) | |
download | enchant-b459f39b30bf66aedcce4db2a78b8df27375774c.tar.gz |
lib.c: remove redundant NULL checks
A provider cannot be loaded unless it has a ‘list_dicts’ member, which is
checked by enchant_provider_is_valid(). Hence, no need to check that
‘list_dicts’ is non-NULL before calling it.
-rw-r--r-- | src/lib.c | 43 |
1 files changed, 20 insertions, 23 deletions
@@ -1177,31 +1177,28 @@ enchant_broker_list_dicts (EnchantBroker * broker, EnchantDictDescribeFn fn, voi { EnchantProvider *provider = (EnchantProvider *) list->data; - if (provider->list_dicts) - { - size_t n_dicts; - char ** dicts = (*provider->list_dicts) (provider, &n_dicts); + size_t n_dicts; + char ** dicts = (*provider->list_dicts) (provider, &n_dicts); - for (size_t i = 0; i < n_dicts; i++) - { - const char * tag = dicts[i]; - if (enchant_is_valid_dictionary_tag (tag)) { - GSList *providers = enchant_get_ordered_providers (broker, tag); - gint this_priority = g_slist_index (providers, provider); - if (this_priority != -1) { - gint min_priority = this_priority + 1; - gpointer ptr = g_hash_table_lookup (tag_map, tag); - if (ptr != NULL) - min_priority = g_slist_index (providers, ptr); - if (this_priority < min_priority) - g_hash_table_insert (tag_map, strdup (tag), provider); - } - g_slist_free (providers); - } + for (size_t i = 0; i < n_dicts; i++) + { + const char * tag = dicts[i]; + if (enchant_is_valid_dictionary_tag (tag)) { + GSList *providers = enchant_get_ordered_providers (broker, tag); + gint this_priority = g_slist_index (providers, provider); + if (this_priority != -1) { + gint min_priority = this_priority + 1; + gpointer ptr = g_hash_table_lookup (tag_map, tag); + if (ptr != NULL) + min_priority = g_slist_index (providers, ptr); + if (this_priority < min_priority) + g_hash_table_insert (tag_map, strdup (tag), provider); } - - enchant_free_string_list (dicts); + g_slist_free (providers); + } } + + enchant_free_string_list (dicts); } GSList *tags = NULL; @@ -1256,7 +1253,7 @@ enchant_provider_dictionary_exists (EnchantProvider * provider, const char * con { exists = (*provider->dictionary_exists) (provider, tag); } - else if (provider->list_dicts) + else { size_t n_dicts; char ** dicts = (*provider->list_dicts) (provider, &n_dicts); |