[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: [libvirt] libvirt boolean type



At Fri, 11 Jan 2013 16:11:35 +0000,
Daniel P. Berrange wrote:

[Daniel, I meant to send my reply to the list on Friday. Maybe it got
 stuck somewhere or I had only sent it to you alone - I was using a
 different MUA using a Live-CD... Sorry for the duplicate, if any.]
 
> On Fri, Jan 11, 2013 at 04:40:31PM +0100, Claudio Bley wrote:
> > Hi.
> > 
> > The following patch's intend is to get a discussion started first.
> > 
> > Rationale:
> > 
> > Many functions in libvirt return "1 for <TRUE>, 0 for <FALSE> and -1
> > on <ERROR>".
> > 
> > When calling a function you need to read the documentation, skipping
> > to the "Returns:" text in order to determine what return values to
> > expect from the function and how to interpret them.
> > 
> > This is cumbersome and takes an extra step which could be avoided.
> > 
> > Advantages:
> > 
> > + enum is binary compatible with int, so no ABI changes
> 
> I'm afraid that is wrong. Size of enums is undefined in C. The compiler
> is free to use any integer size to represent an enum. As such we have a
> rule that no enums are allowed in libvirt API signatures.

That's too bad. This surely diminishes the value of this addition (a
bit).

Nonetheless, I think it still would be valuable as point 2 and 3 still
hold. Just change the definition to:

typedef int virBool;

Claudio
-- 
AV-Test GmbH, Henricistra├če 20, 04155 Leipzig, Germany
Phone: +49 341 265 310 19
Web:<http://www.av-test.org>

Eingetragen am / Registered at: Amtsgericht Stendal (HRB 114076)
Geschaeftsfuehrer (CEO): Andreas Marx, Guido Habicht, Maik Morgenstern


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]