diff options
-rw-r--r-- | osinfo/osinfo_db.c | 29 |
1 files changed, 13 insertions, 16 deletions
diff --git a/osinfo/osinfo_db.c b/osinfo/osinfo_db.c index 4eeb440..82751a6 100644 --- a/osinfo/osinfo_db.c +++ b/osinfo/osinfo_db.c @@ -80,8 +80,8 @@ static const char *language_code_from_raw(OsinfoDatamap *lang_map, return lang; } -static GList *match_languages(OsinfoDb *db, OsinfoMedia *media, - OsinfoMedia *db_media) +static void set_languages_for_media(OsinfoDb *db, OsinfoMedia *media, + OsinfoMedia *db_media) { const gchar *volume_id; const gchar *regex; @@ -89,18 +89,19 @@ static GList *match_languages(OsinfoDb *db, OsinfoMedia *media, OsinfoDatamap *lang_map; gchar *raw_lang; GList *languages; + const char *lang; - g_return_val_if_fail(OSINFO_IS_MEDIA(media), NULL); - g_return_val_if_fail(OSINFO_IS_MEDIA(db_media), NULL); + g_return_if_fail(OSINFO_IS_MEDIA(media)); + g_return_if_fail(OSINFO_IS_MEDIA(db_media)); regex = osinfo_entity_get_param_value(OSINFO_ENTITY(db_media), OSINFO_MEDIA_PROP_LANG_REGEX); if (regex == NULL) - return NULL; + return; volume_id = osinfo_media_get_volume_id(media); if (volume_id == NULL) - return NULL; + return; lang_map_id = osinfo_entity_get_param_value(OSINFO_ENTITY(db_media), OSINFO_MEDIA_PROP_LANG_MAP); @@ -111,14 +112,14 @@ static GList *match_languages(OsinfoDb *db, OsinfoMedia *media, } raw_lang = get_raw_lang(volume_id, regex); - - languages = g_list_append(NULL, - (gpointer)language_code_from_raw(lang_map, raw_lang)); + lang = language_code_from_raw(lang_map, raw_lang); + languages = g_list_append(NULL, (gpointer)lang); + osinfo_media_set_languages(media, languages); + g_list_free(languages); g_free(raw_lang); - - return languages; } + /** * SECTION:osinfo_db * @short_description: Database of all entities @@ -625,7 +626,6 @@ static void fill_media(OsinfoDb *db, OsinfoMedia *media, OsinfoMedia *matched_media, OsinfoOs *os) { - GList *languages; gboolean is_installer; gboolean is_live; gint reboots; @@ -636,10 +636,7 @@ static void fill_media(OsinfoDb *db, OsinfoMedia *media, const gchar *url; GList *variants, *node; - languages = match_languages(db, media, matched_media); - if (languages != NULL) - osinfo_media_set_languages(media, languages); - g_list_free(languages); + set_languages_for_media(db, media, matched_media); id = osinfo_entity_get_id(OSINFO_ENTITY(matched_media)); g_object_set(G_OBJECT(media), "id", id, NULL); |