[libvirt] [PATCH 5/7] Add a port allocator class

Daniel P. Berrange berrange at redhat.com
Wed Jan 16 11:01:16 UTC 2013


On Tue, Jan 15, 2013 at 05:30:23PM -0700, Eric Blake wrote:
> On 01/11/2013 05:13 AM, Daniel P. Berrange wrote:
> > +
> > +    unsigned int start;
> > +    unsigned int end;
> > +};
> 
> > +
> > +virPortAllocatorPtr virPortAllocatorNew(unsigned short start,
> > +                                        unsigned short end)
> > +
> > +{
> 
> Spurious blank line.  Any reason you allocate with short, but store the
> values in int internally?  (unsigned short in the struct should be fine)

Yes, using a short in the struct would be better & was my
intention.

> > +    virPortAllocatorPtr pa;
> > +
> > +    if (start >= end) {
> > +        virReportInvalidArg(start, "start port %d must be less than end port %d",
> > +                            start, end);
> > +        return NULL;
> > +    }
> 
> Since this error gave a message,
> 
> > +
> > +    if (virPortAllocatorInitialize() < 0)
> > +        return NULL;
> > +
> > +    if (!(pa = virObjectLockableNew(virPortAllocatorClass)))
> > +        return NULL;
> 
> does this error need to call virReportOOMError()?

This function raises an error already.

> 
> > +
> > +    pa->start = start;
> > +    pa->end = end;
> > +
> > +    if (!(pa->bitmap = virBitmapNew(end-start))) {
> > +        virObjectUnref(pa);
> > +        return NULL;
> 
> Same question here.  Callers can't tell if a NULL return means OOM or
> usage error.

I thought this did too, but it appears to leave it upto the
caller, so I'll add it here.


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