[Top][All Lists]

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

Re: [Qemu-devel] [PATCH 01/16] net: Add a hub net client

From: Laszlo Ersek
Subject: Re: [Qemu-devel] [PATCH 01/16] net: Add a hub net client
Date: Mon, 23 Jul 2012 16:05:23 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:10.0.6esrpre) Gecko/20120714 Thunderbird/10.0.6

On 07/23/12 15:49, Stefan Hajnoczi wrote:
> On Mon, Jul 23, 2012 at 1:45 PM, Laszlo Ersek <address@hidden> wrote:
>> Two hairs to split:
>> On 07/20/12 14:01, Stefan Hajnoczi wrote:
>>> +static NetHubPort *net_hub_port_new(NetHub *hub, const char *name)
>>> +{
>>> +    VLANClientState *nc;
>>> +    NetHubPort *port;
>>> +    unsigned int id = hub->num_ports++;
>> There are projects that don't like to put logic or externally visible
>> side-effects into initializers. I don't know about qemu.
> I see what you're saying, we also add it to the hub's port list
> further down.  It could be split into _new() and hub_add_port(hub,
> port) but then autogenerating a unique name becomes harder.  Since
> this function is static, the scope is limited and we can assume
> callers understand what is going on here.
> I'd like to leave it this way or do you see a concrete change that
> improves the code?

Oh no, that's not what I meant -- the function is perfectly fine, it's
just that the post-increment of object A shouldn't be in the definition
/ initializer list of object B. (Keeping the increment and the
construcion in one place is actually a good thing IMHO.)

The idea is, rather than

    unsigned int id = hub->num_ports++;

it should say

    unsigned int id;
    /* ... */
    id = hub->num_ports++;

... Hm, yes, I remember it from
<http://www.manpages.info/freebsd/style.9.html>. But again, I'm not sure
how qemu treats this.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]