Stefan Beller <sbeller@xxxxxxxxxx> writes: > This was missed in 5982da9d2ce (replace-object: allow > prepare_replace_object to handle arbitrary repositories, 2018-04-11) > > Technically the code works correctly as the replace_map is the same > size in different repositories, however it is hard to read. So convert > the code to the familiar pattern of dereferencing the pointer that we > assign in the sizeof itself. ;-) We say ptr = xmalloc(sizeof(*ptr)) is better because ptr = xmalloc(sizeof(typeof(*ptr))) is easy to go stale unless we actually use typeof and instead say a concrete type like "struct oidmap". This one was doing ptr = xmalloc(sizeof(*another_ptr)) and it was OK because ptr and another_ptr happened to be of the same type. I wonder if we are making it safer, or making it more obscure to seasoned C programmers, if we introduced a pair of helper macros, perhaps like these: #define ALLOCATE(ptr) (ptr) = xmalloc(sizeof(*(ptr))) #define CALLOCATE(ptr,cnt) (ptr) = xcalloc((cnt), sizeof(*(ptr))) The change looks obviously good. Will queue. Thanks.