[libvirt] [libvirt-glib] gobject: Correct docs for gvir_storage_pool_get_info()

Daniel P. Berrange berrange at redhat.com
Wed Sep 23 14:00:49 UTC 2015


On Wed, Sep 23, 2015 at 02:54:51PM +0100, Zeeshan Ali (Khattak) wrote:
> On Wed, Sep 23, 2015 at 2:18 PM, Daniel P. Berrange <berrange at redhat.com> wrote:
> > On Wed, Sep 23, 2015 at 01:44:28PM +0100, Zeeshan Ali (Khattak) wrote:
> >> The returned GVirStoragePoolInfo pointer is not a GObject so it must not
> >> be unrefed using g_object_unref(). Since gvir_storage_pool_info_free()
> >> is private function, callers must either use g_slice_free() or
> >> g_boxed_free().
> >> ---
> >>
> >> Perhaps we should just make gvir_storage_pool_info_free() public instead?
> >>
> >>  libvirt-gobject/libvirt-gobject-storage-pool.c | 4 ++--
> >>  1 file changed, 2 insertions(+), 2 deletions(-)
> >>
> >> diff --git a/libvirt-gobject/libvirt-gobject-storage-pool.c b/libvirt-gobject/libvirt-gobject-storage-pool.c
> >> index 7f26b1b..f015efa 100644
> >> --- a/libvirt-gobject/libvirt-gobject-storage-pool.c
> >> +++ b/libvirt-gobject/libvirt-gobject-storage-pool.c
> >> @@ -277,8 +277,8 @@ GVirConfigStoragePool *gvir_storage_pool_get_config(GVirStoragePool *pool,
> >>   * @pool: the storage_pool
> >>   * @err: Place-holder for possible errors
> >>   *
> >> - * Returns: (transfer full): the info. The returned object should be
> >> - * unreffed with g_object_unref() when no longer needed.
> >> + * Returns: (transfer full): the info. The returned pointer should be
> >> + * freed using either #g_slice_free() or #g_boxed_free() when no longer needed.
> >>   */
> >>  GVirStoragePoolInfo *gvir_storage_pool_get_info(GVirStoragePool *pool,
> >>                                                  GError **err)
> >
> > ACK
> 
> Thanks but just to be sure, I hope you didn't miss the details and
> this comment below it:
> 
> > Perhaps we should just make gvir_storage_pool_info_free() public instead?

Since we've defined it as a boxed type, I think recommending g_boxed_free
is the right solution. We should make sure our docs actually tell people
this is a boxed type if they don't already :-)

We should *not* in fact recommend  g_slice_free(), as the use of the slice
allocator is an internal implementation detail. We should be free to change
to use a different allocator without breaking clients.

Regards,
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 :|




More information about the libvir-list mailing list