From: Junio C Hamano <gitster@pobox.com>
To: Hiroyuki Sano <sh19910711@gmail.com>
Cc: git@vger.kernel.org
Subject: Re: [PATCH v3][GSOC] fsck: use bitwise-or assignment operator to set flag
Date: Thu, 20 Mar 2014 11:20:47 -0700 [thread overview]
Message-ID: <xmqqtxasybnk.fsf@gitster.dls.corp.google.com> (raw)
In-Reply-To: <1395270124-2242-1-git-send-email-sh19910711@gmail.com> (Hiroyuki Sano's message of "Thu, 20 Mar 2014 08:02:04 +0900")
Hiroyuki Sano <sh19910711@gmail.com> writes:
> fsck_tree() has two different ways to set a flag,
> which are the followings:
>
> 1. Using a if-statement that guards assignment.
>
> 2. Using a bitwise-or assignment operator.
>
> Currently, many with the former way,
> and one with the latter way.
>
> In this patch, unify them to the latter way,
> because it makes the code shorter and easier to read,
> and it is brief and to the point.
Two issues:
* "In this patch," is redundant.
* "it is brief and to the point" are equally applicable to both
styles, so that is not a *reason* to choose one over the other.
If a condition were *not* brief and to the point, then a rewrite to
the latter style will make the resulting code worse:
if (a very complex condition
that potentially have to consume a
lot of brain-cycles to understand) {
has_that_condition = 1;
}
is a lot easier to extend than
has_that_condition = (a very complex condition
that potentially have to consume a
lot of brain-cycles to understand);
because it is a lot more likely that we would need to later extend
such a complex condition is more likely than a simple singleton
condition, and we could end up with
if (a very complex condition
that potentially have to consume a
lot of brain-cycles to understand) {
futher computation to check if
the condition really holds
will be added here later
if (does that condition really hold true?)
has_that_condition = 1;
}
which may be harder to express in the latter form.
In other words, "it is brief and to the point" merely _allows_ these
statements to be expressed in the latter form; it does not say
anything about which is better between the former and the latter.
> Signed-off-by: Hiroyuki Sano <sh19910711@gmail.com>
> ---
> fsck.c | 18 ++++++------------
> 1 file changed, 6 insertions(+), 12 deletions(-)
>
> diff --git a/fsck.c b/fsck.c
> index b3022ad..abed62b 100644
> --- a/fsck.c
> +++ b/fsck.c
> @@ -165,18 +165,12 @@ static int fsck_tree(struct tree *item, int strict, fsck_error error_func)
>
> sha1 = tree_entry_extract(&desc, &name, &mode);
>
> - if (is_null_sha1(sha1))
> - has_null_sha1 = 1;
> - if (strchr(name, '/'))
> - has_full_path = 1;
> - if (!*name)
> - has_empty_name = 1;
> - if (!strcmp(name, "."))
> - has_dot = 1;
> - if (!strcmp(name, ".."))
> - has_dotdot = 1;
> - if (!strcmp(name, ".git"))
> - has_dotgit = 1;
> + has_null_sha1 |= is_null_sha1(sha1);
> + has_full_path |= !!strchr(name, '/');
> + has_empty_name |= !*name;
> + has_dot |= !strcmp(name, ".");
> + has_dotdot |= !strcmp(name, "..");
> + has_dotgit |= !strcmp(name, ".git");
> has_zero_pad |= *(char *)desc.buffer == '0';
> update_tree_entry(&desc);
next prev parent reply other threads:[~2014-03-20 18:20 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-03-19 23:02 [PATCH v3][GSOC] fsck: use bitwise-or assignment operator to set flag Hiroyuki Sano
2014-03-20 18:20 ` Junio C Hamano [this message]
2014-03-20 18:45 ` Junio C Hamano
2014-03-20 23:27 ` Hiroyuki
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=xmqqtxasybnk.fsf@gitster.dls.corp.google.com \
--to=gitster@pobox.com \
--cc=git@vger.kernel.org \
--cc=sh19910711@gmail.com \
/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.