[Libosinfo] [PATCH 2/2] db: _identify_media() should also set media ID

Zeeshan Ali (Khattak) zeeshanak at gnome.org
Sat Dec 29 00:30:39 UTC 2012


From: "Zeeshan Ali (Khattak)" <zeeshanak at gnome.org>

For the new _identify_media() method to be able to easily replace
_db_guess_os_from_media() usage in apps as it intends to, it must
provide the ID of the media in the DB.

This fixes a recent regression in Boxes caused by switching to
_identify_media():

https://bugzilla.gnome.org/show_bug.cgi?id=685826#c35 (and following
comments)
---
 osinfo/osinfo_db.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/osinfo/osinfo_db.c b/osinfo/osinfo_db.c
index e3f6f45..adf2737 100644
--- a/osinfo/osinfo_db.c
+++ b/osinfo/osinfo_db.c
@@ -624,6 +624,7 @@ static void fill_media (OsinfoDb *db, OsinfoMedia *media,
     gboolean is_installer;
     gboolean is_live;
     gint reboots;
+    const gchar *id;
     const gchar *kernel_path;
     const gchar *initrd_path;
     const gchar *arch;
@@ -634,6 +635,9 @@ static void fill_media (OsinfoDb *db, OsinfoMedia *media,
         osinfo_media_set_languages(media, languages);
     g_list_free(languages);
 
+    id = osinfo_entity_get_id(OSINFO_ENTITY(matched_media));
+    g_object_set(G_OBJECT(media), "id", id, NULL);
+
     arch = osinfo_media_get_architecture(matched_media);
     if (arch != NULL)
         g_object_set(G_OBJECT(media), "architecture", arch, NULL);
@@ -670,9 +674,9 @@ static void fill_media (OsinfoDb *db, OsinfoMedia *media,
  *
  * Try to match a newly created @media with a media description from @db.
  * If found, @media will be filled with the corresponding information
- * stored in @db. In particular, after a call to
- * osinfo_db_identify_media(), if the media could be identified, its
- * OsinfoMedia::os property will be set.
+ * stored in @db. In particular, after a call to osinfo_db_identify_media(), if
+ * the media could be identified, its OsinfoEntify::id and OsinfoMedia::os
+ * properties will be set.
  *
  * Returns: TRUE if @media was found in @db, FALSE otherwise
  */
-- 
1.8.0.2




More information about the Libosinfo mailing list