On Thu, Jan 19, 2012 at 05:22:20PM +0200, Zeeshan Ali (Khattak) wrote: > On Thu, Jan 19, 2012 at 11:51 AM, Christophe Fergeau > <cfergeau@xxxxxxxxxx> wrote: > > On Thu, Jan 19, 2012 at 02:37:07AM +0200, Zeeshan Ali (Khattak) wrote: > >> From: "Zeeshan Ali (Khattak)" <zeeshanak@xxxxxxxxx> > >> > >> --- > >> osinfo/libosinfo.syms | 1 + > >> osinfo/osinfo_os.c | 41 +++++++++++++++++++++++++++++++++++++++++ > >> osinfo/osinfo_os.h | 4 ++++ > >> 3 files changed, 46 insertions(+), 0 deletions(-) > >> > >> diff --git a/osinfo/libosinfo.syms b/osinfo/libosinfo.syms > >> index de1ff18..8e2d929 100644 > >> --- a/osinfo/libosinfo.syms > >> +++ b/osinfo/libosinfo.syms > >> @@ -109,6 +109,7 @@ LIBOSINFO_0.0.6 { > >> osinfo_os_new; > >> osinfo_os_get_devices; > >> osinfo_os_get_all_devices; > >> + osinfo_os_get_device_by_property; > >> osinfo_os_get_device_links; > >> osinfo_os_add_device; > >> osinfo_os_get_family; > >> diff --git a/osinfo/osinfo_os.c b/osinfo/osinfo_os.c > >> index 0facb08..ec7886a 100644 > >> --- a/osinfo/osinfo_os.c > >> +++ b/osinfo/osinfo_os.c > >> @@ -238,6 +238,47 @@ OsinfoDeviceList *osinfo_os_get_all_devices(OsinfoOs *os, OsinfoFilter *filter) > >> } > >> > >> /** > >> + * osinfo_os_get_device_by_property: > >> + * @os: an operating system > >> + * @property: the property of interest > >> + * @value: the required value of property @property > >> + * @inherited: Should devices from inherited and cloned OSs be included in the > >> + * search. > >> + * > >> + * A utility function that gets the first device found from the list of devices > >> + * @os supports, for which the value of @property is @value. > >> + * > >> + * Returns: (transfer full): The found device or NULL > >> + */ > >> +OsinfoDevice *osinfo_os_get_device_by_property(OsinfoOs *os, > >> + const gchar *property, > >> + const gchar *value, > >> + gboolean inherited) > >> +{ > >> + OsinfoDevice *ret; > >> + OsinfoDeviceList *devices; > >> + OsinfoFilter *filter; > >> + > >> + filter = osinfo_filter_new(); > >> + osinfo_filter_add_constraint(filter, property, value); > >> + > >> + if (inherited) > >> + devices = osinfo_os_get_all_devices(os, filter); > >> + else > >> + devices = osinfo_os_get_devices(os, filter); > >> + g_object_unref (filter); > > > > Don't you get a warning if you don't do g_object_unref(G_OBJECT(filter)); ? > > (same comment for the g_object_unref(devices) below) > > Nope, should I be? No, it is fine. g_object_{ref,unref} are both declared to use 'void *' to remove the need to cast Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|