Re: [PATCH v3 1/5] Refactor pretty_print_commit arguments into a struct
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Oct 18, 2009, 22:47 UTC
- Message-ID
- <7vaazonwtr.fsf@alter.siamese.dyndns.org>
- In-Reply-To
- <200910182051.20461.trast@student.ethz.ch>
Thomas Rast <trast@student.ethz.ch> writes:
Show 8 quoted lines
> Junio C Hamano wrote: >> The existing calls to format_commit_message() often take DATE_NORMAL to >> its "enum date_mode dmode" argument, and you replaced it with a pointer to >> a struct. DATE_NORMAL happens to be "0" and the compiler does not catch >> calls you forgot to convert in this patch. > > Hmph, that's embarrassing. Apparently I was way too focused on > pretty_print_commit...
This is nothing to be embarrassed about. I did not notice it when I queued the series either, and I noticed it only when I tried to look at interactions with js/diff-verbose-submodule topic(the other series does not hardcode the style to be DATE_NORMAL).
One solution to help the compiler catch this kind of semantic crash upon merging or applying code based on the old format_commit_message() would have been to change its function signature (or even the name), so that it would not go unnoticed that DATE_NORMAL that happens to be "0" is silently interpreted as (void *)0 == NULL.