[libvirt] [PATCH libvirt-glib 2/3] Add GVirDomainInterface

Marc-André Lureau mlureau at redhat.com
Thu Nov 10 21:15:01 UTC 2011


Hi

> On Thu, Nov 10, 2011 at 09:33:42PM +0100, Marc-André Lureau wrote:
> > +    case PROP_PATH:
> > +        if (priv->path)
> > +            g_free(priv->path);
> 
> You can safely call g_free on a NULL pointer, this makes the code a
> bit
> simpler, there are several occurrences of this in the 2 patches.

Correct, I forgot. I will fix that.

> > +static GVirDomainInterfaceStats *
> > +gvir_domain_interface_stats_copy(GVirDomainInterfaceStats *stats)
> > +{
> > +    return g_slice_dup(GVirDomainInterfaceStats, stats);
> > +}
> 
> Do we really need to use GSlice here? I consider GSlice as something
> to use
> when you want to make many allocations of same-size objects, will we
> allocate many of these stats objects?

Yes, it's frequently allocated (1/second), and kept in memory too for history.

> > +typedef struct _GVirDomainInterfaceStats GVirDomainInterfaceStats;
> > +struct _GVirDomainInterfaceStats
> > +{
> > +    gint64 rx_bytes;
> > +    gint64 rx_packets;
> > +    gint64 rx_errs;
> > +    gint64 rx_drop;
> > +    gint64 tx_bytes;
> > +    gint64 tx_packets;
> > +    gint64 tx_errs;
> > +    gint64 tx_drop;
> > +};
> 
> 2 questions about this:
> * should we use more explicit names (which probably means longer
> ones)?

I don't mind. I just copy&pasted libvirt here, which I like because you can directly map it to libvirt struct.

> * how do we handle ABI compatibility the day we need to add fields to
> this
>   struct?

It's only a returned structure, allocated by the lib, so I guess that's fine to append fields later, right?

regards




More information about the libvir-list mailing list