From: Kjetil Barvik <barvik@broadpark.no>
To: Junio C Hamano <gitster@pobox.com>
Cc: git@vger.kernel.org
Subject: Re: [PATCH 2/2] make the ST_{C,M}TIME_NSEC macros more function like
Date: Sun, 15 Mar 2009 22:59:45 +0100 [thread overview]
Message-ID: <86tz5u1m7i.fsf@broadpark.no> (raw)
In-Reply-To: <7v4oxu7dyn.fsf@gitster.siamese.dyndns.org>
Junio C Hamano <gitster@pobox.com> writes:
> Kjetil Barvik <barvik@broadpark.no> writes:
>
>> Make the macros take a pointer to a 'struct stat'. This is so that it
>> should be easier to understand what is going on, and that the macros
>> can later be implemented as a inline function if we want to.
>>
>> Impact: cosmetic change
>
> Hmm,...
>
> I have to wonder if this cosmetic change is an improvement, though.
>
> I do not have a strong feeling either way, but I think it makes it
> clear that these two macros are not lvalues if you do not pass a
> pointer but instead pass a structure. An inline function can still
> take a structure passed by value as an argument anyway, no?
It seems to woork from a small gcc test, but since C has call-by-
value, and http://en.wikipedia.org/wiki/Call_by_value#Call_by_value
says:
[...] in C or Pascal, calling a function with a large structure as
an argument will cause the entire structure to be copied,
potentially causing serious performance degradation, and mutations
to the structure are invisible to the caller. [...]
So in my eyes it make more sense to be consistent and take the address
of all struct like objects (&st in this case) for all arguments to
"function-like" things.
But, since these 2 are macros, which use textual substitution, I guess
things will work correctly either way, and the compiled result will be
the same. But, I still like the more "function friendly" macros.
-- kjetil
next prev parent reply other threads:[~2009-03-15 22:01 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-03-15 11:38 [PATCH 0/2] git checkout: one bugfix and one cosmetic change Kjetil Barvik
2009-03-15 11:38 ` [PATCH 1/2] checkout bugfix: use stat.mtime instead of stat.ctime in two places Kjetil Barvik
2009-03-15 11:38 ` [PATCH 2/2] make the ST_{C,M}TIME_NSEC macros more function like Kjetil Barvik
2009-03-15 20:01 ` Junio C Hamano
2009-03-15 21:59 ` Kjetil Barvik [this message]
2009-03-16 7:12 ` Junio C Hamano
2009-03-17 17:38 ` Kjetil Barvik
2009-03-15 18:21 ` [PATCH 0/2] git checkout: one bugfix and one cosmetic change Junio C Hamano
2009-03-15 19:38 ` Junio C Hamano
2009-03-16 16:12 ` Michael J Gruber
2009-03-17 4:56 ` Kris Shannon
2009-03-17 8:43 ` Jeff King
2009-03-17 13:39 ` Michael J Gruber
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=86tz5u1m7i.fsf@broadpark.no \
--to=barvik@broadpark.no \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.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.