All of lore.kernel.org
 help / color / mirror / Atom feed
From: Chen Gang <gang.chen.5i5j@gmail.com>
To: Peter Maydell <peter.maydell@linaro.org>
Cc: aliguori@us.ibm.com, QEMU Developers <qemu-devel@nongnu.org>
Subject: Re: [Qemu-devel] [PATCH] vl.c: move "if (fd < 0)" into "if (fd <= STDERR_FILENO)"
Date: Sun, 29 Dec 2013 19:18:15 +0800	[thread overview]
Message-ID: <52C004F7.7020003@gmail.com> (raw)
In-Reply-To: <CAFEAcA__5CcpeVM0OVSOrpPcVuhirfhzSM=dJH5NYPGX_63eog@mail.gmail.com>


Firstly, thank you very much for your reply, this is my first patch for
qemu. Next year (2014), as a volunteer, I will try to make a patch for
qemu in each month. :-)


On 12/29/2013 07:43 AM, Peter Maydell wrote:
> On 28 December 2013 08:52, Chen Gang <gang.chen.5i5j@gmail.com> wrote:
>> For valid 'fd' (in most cases), it is enough to only check whether it
>> is larger than STDERR_FILENO, so recommend to move "if (fd < 0)" into
>> failure processing block.
> 
>> @@ -1064,15 +1064,10 @@ static int parse_add_fd(QemuOpts *opts, void *opaque)
>>      fdset_id = qemu_opt_get_number(opts, "set", -1);
>>      fd_opaque = qemu_opt_get(opts, "opaque");
>>
>> -    if (fd < 0) {
>> -        qerror_report(ERROR_CLASS_GENERIC_ERROR,
>> -                      "fd option is required and must be non-negative");
>> -        return -1;
>> -    }
>> -
>>      if (fd <= STDERR_FILENO) {
>>          qerror_report(ERROR_CLASS_GENERIC_ERROR,
>> -                      "fd cannot be a standard I/O stream");
>> +                      fd < 0 ? "fd option is required and must be non-negative"
>> +                             : "fd cannot be a standard I/O stream");
>>          return -1;
>>      }
> 
> This patch doesn't change the behaviour, but I think it
> makes the code less clear to read (because we've
> folded two different error cases into one and then split
> them out again with a ternary operator on the string).

When we check the variable (e.g. 'fd') whether valid or not, we often
try to use one code block ("if () {...}") or a function (when it is
complex) to perform it.

For readers, firstly, they mainly focus on the variable (e.g. 'fd')
whether valid or not, they don't mainly focus on the variable failure
details.


> This isn't performance critical code (it's run only a few
> times and only at startup), so I think we should favour
> clarity and ease-of-reading, and I think the existing code
> is better here.
> 

Yeah.


Thanks.
-- 
Chen Gang

Open, share and attitude like air, water and life which God blessed

      reply	other threads:[~2013-12-29 11:18 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-12-28  8:52 [Qemu-devel] [PATCH] vl.c: move "if (fd < 0)" into "if (fd <= STDERR_FILENO)" Chen Gang
2013-12-28 23:43 ` Peter Maydell
2013-12-29 11:18   ` Chen Gang [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=52C004F7.7020003@gmail.com \
    --to=gang.chen.5i5j@gmail.com \
    --cc=aliguori@us.ibm.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.