On Tue, Dec 06, 2022 at 10:35:54AM +0900, Junio C Hamano wrote: > Jeff King <peff@xxxxxxxx> writes: > > > So you can think of "allocate this one element and zero it" as "calloc, > > but don't multiply" or as "malloc, but zero". Naming it CALLOC() is > > thinking of it as the former. If we think of it as the latter it could > > perhaps be MALLOCZ() or something. I don't know if that name is too > > subtle or not. We have xmemdupz(), which is basically the same thing; > > it's only a zero-terminator, but that is because we are writing non-zero > > bytes in the rest of it. Mostly I'd worry that it is easy to glance past > > the "Z". > > I think the name for the former would be CALLOC_ONE(), as I would > rephrase it as "calloc, but just one element". I agree MALLOCZ() > would be fine for the other interpretation, and I do not have much > problem as much problem with the name as calling it CALLOC(). Between CALLOC_ONE() and MALLOCZ(), I prefer the latter for brevity. But between that and CALLOC(), I prefer the latter, since "CALLOC()" reminds me of the zero-initialization of calloc()-proper, and the "Z" in "MALLOCZ()" feels easy-ish to miss. Thanks, Taylor