Re: [PATCH 1/5] hashmap: add enum for hashmap free_entries option
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Jun 12, 2014, 19:12 UTC
- Message-ID
- <xmqqegyu54cl.fsf@gitster.dls.corp.google.com>
- In-Reply-To
- <53981D6A.3090604@gmail.com>
Karsten Blees <karsten.blees@gmail.com> writes:
Show 23 quoted lines
> Am 10.06.2014 12:17, schrieb Heiko Voigt: >> The intention of Jonathans critique here[1] was that you do not see what >> this parameter does on the callsite. I.e.: >> >> hashmap_free(&map, 1); >> >> compared to >> >> hashmap_free(&map, HASHMAP_FREE_ENTRIES); >> >> A boolean basically transfers the same information and would not help >> the reader here. >> >> Cheers Heiko >> >> [1] http://article.gmane.org/gmane.comp.version-control.git/243917 >> > > There are languages where you can have e.g. 'hashmap_free(..., > free_entries: true)'. In C, however, you do not see what a > parameter does at the call site. This is a general language > feature, reducing redundancy and keeping it short and concise. IMO > there's no reason to treat boolean parameters differently.
But given that you are writing in C, is any of that relevant? We do want to keep our call-sites readable and understandable, and 1 or true would not help, unless (1) you are the one who wrote the function and know that 1 means free the entries, or (2) the API is so widely used and everybody knows what 1 means free the entries.