[Libosinfo] [libosinfo PATCH 18/31] devicelinklist: Inherit from OsinfoLinkList

Fabiano Fidêncio fidencio at redhat.com
Fri Nov 23 10:15:07 UTC 2018


Let's take advantage of the abstract OsinfoLinkList and inherit from it.

Signed-off-by: Fabiano Fidêncio <fidencio at redhat.com>
---
 osinfo/osinfo_devicelinklist.c | 13 ++++---------
 osinfo/osinfo_devicelinklist.h |  4 ++--
 2 files changed, 6 insertions(+), 11 deletions(-)

diff --git a/osinfo/osinfo_devicelinklist.c b/osinfo/osinfo_devicelinklist.c
index 5f27392..d0efc55 100644
--- a/osinfo/osinfo_devicelinklist.c
+++ b/osinfo/osinfo_devicelinklist.c
@@ -27,7 +27,7 @@
 #include <osinfo/osinfo.h>
 #include <glib/gi18n-lib.h>
 
-G_DEFINE_TYPE(OsinfoDeviceLinkList, osinfo_devicelinklist, OSINFO_TYPE_LIST);
+G_DEFINE_TYPE(OsinfoDeviceLinkList, osinfo_devicelinklist, OSINFO_TYPE_LINKLIST);
 
 #define OSINFO_DEVICELINKLIST_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE((obj), OSINFO_TYPE_DEVICELINKLIST, OsinfoDeviceLinkListPrivate))
 
@@ -177,14 +177,9 @@ OsinfoDeviceList *osinfo_devicelinklist_get_devices(OsinfoDeviceLinkList *list,
                                                     OsinfoFilter *filter)
 {
     OsinfoDeviceList *newList = osinfo_devicelist_new();
-    int i;
-    for (i = 0; i < osinfo_list_get_length(OSINFO_LIST(list)); i++) {
-        OsinfoEntity *ent = osinfo_list_get_nth(OSINFO_LIST(list), i);
-        if (!filter || osinfo_filter_matches(filter, ent)) {
-            OsinfoDevice *dev = OSINFO_DEVICE(osinfo_link_get_target(OSINFO_LINK(ent)));
-            osinfo_list_add(OSINFO_LIST(newList), OSINFO_ENTITY(dev));
-        }
-    }
+    osinfo_linklist_get_targets(OSINFO_LINKLIST(list),
+                                filter,
+                                OSINFO_LIST(newList));
     return newList;
 }
 
diff --git a/osinfo/osinfo_devicelinklist.h b/osinfo/osinfo_devicelinklist.h
index 42691b1..f2816f9 100644
--- a/osinfo/osinfo_devicelinklist.h
+++ b/osinfo/osinfo_devicelinklist.h
@@ -48,7 +48,7 @@ typedef struct _OsinfoDeviceLinkListPrivate OsinfoDeviceLinkListPrivate;
 /* object */
 struct _OsinfoDeviceLinkList
 {
-    OsinfoList parent_instance;
+    OsinfoLinkList parent_instance;
 
     /* public */
 
@@ -60,7 +60,7 @@ struct _OsinfoDeviceLinkList
 struct _OsinfoDeviceLinkListClass
 {
     /*< private >*/
-    OsinfoListClass parent_class;
+    OsinfoLinkListClass parent_class;
 
     /* class members */
 };
-- 
2.19.1




More information about the Libosinfo mailing list