Re: [PATCH 1/2] pkt-line: fix declaration of `set_packet_header()`
- Date: Wed, 15 May 2019 12:39:04 +0200 (DST)
- From: Johannes Schindelin <Johannes.Schindelin@xxxxxx>
- Subject: Re: [PATCH 1/2] pkt-line: fix declaration of `set_packet_header()`
On Wed, 15 May 2019, Junio C Hamano wrote:
> Jeff King <peff@xxxxxxxx> writes:
> > I do have a slight preference for going the _other_ way. There is no
> > need to mark the parameter as const in the definition. It is passed by
> > value, so nobody except the function body cares either way. And we have
> > many function bodies where value-passed parameters (or local variables!)
> > are not marked as const, even though they are only assigned to once.
> That would be more like this patch, then?
I can live very well with this patch.
Just two minor comments:
> -- >8 --
> Subject: pkt-line: drop 'const'-ness of a param to set_packet_header()
> The fact that the incoming parameter is used as read-only in the
> fuction is an implementation detail that the callers should not have
> to know, and the prototype defined for the function in pkt-line.h
> lacked the "const" for that reason, but apparently some compilers
> complain about the parameter type mismatch.
We could be more explicit, as we know exactly that it is MS Visual C 2017
that is complaining.
> Let's squelch it by removing the "const" that is pointless for a
> small function like this, which would not help optimizing compilers
It is not pointless because of the size of the function, but because `int`
is already a type that is always passed by value, never by reference.
If at all, it would make a difference if the function was inlined, so I
would argue that it would be pointless for large functions.
But both aspects are moot and more philosophical than anything else in
> nor reading humans that much.
> Noticed-by: Johannes Schindelin <johannes.schindelin@xxxxxx>
> Helped-by: Jeff King <peff@xxxxxxxx>
> Signed-off-by: Junio C Hamano <gitster@xxxxxxxxx>
> pkt-line.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
> diff --git a/pkt-line.c b/pkt-line.c
> index c9ed780d0b..a0e87b1e81 100644
> --- a/pkt-line.c
> +++ b/pkt-line.c
> @@ -119,7 +119,7 @@ void packet_buf_delim(struct strbuf *buf)
> strbuf_add(buf, "0001", 4);
> -void set_packet_header(char *buf, const int size)
> +void set_packet_header(char *buf, int size)
> static char hexchar = "0123456789abcdef";