[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2 03/16] sockets: allow port to be NULL when li
From: |
Markus Armbruster |
Subject: |
Re: [Qemu-devel] [PATCH v2 03/16] sockets: allow port to be NULL when listening on IP address |
Date: |
Thu, 22 Oct 2015 14:10:26 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux) |
Peter Maydell <address@hidden> writes:
> On 22 October 2015 at 10:43, Daniel P. Berrange <address@hidden> wrote:
>> For reasons I don't understand, it appears that even string
>> fields which are marked as optional get a 'has_XXX' flag,
>> to distinguish betweeen a NULL string and an unset string.
>> I struggle to imagine why we need this. It makes sense for
>> integer/boolean types, but I would have thought just checking
>> for NULL was sufficient for string types.
>
> I think the argument here is pure consistency. *Every* optional
> field should be implemented as has_fieldname (bool) plus fieldname
> (actual value). Special casing string types because we happen
> to have a special value we can use to indicate 'no string'
> seems to me like it would cause more confusion than it would
> be worth.
Having a has_FOO for pointer-valued FOOs also causes confusion, because
it begs questions like "does has_FOO imply FOO != NULL?" and "if
!has_FOO, do I have to worry about freeing FOO?".
I believe we have these has_FOOs not because someone tried to minimize
confusion, but due to laziness: it was simpler to blindly generate the
has_FOO for every FOO.
Since I don't think distinguishing "pointer argument omitted" from
"pointer argument is null" makes sense, I want the has_FOO killed for
pointer FOOs. Perhaps it's even in the QAPI review queue already, which
Eric keeps filling faster than I can drain it :)
[Qemu-devel] [PATCH v2 04/16] ui: convert VNC startup code to use SocketAddress, Daniel P. Berrange, 2015/10/12