Stefan Beller <sbeller@xxxxxxxxxx> writes: > -static struct replace_object { > - struct object_id original; > +struct replace_object { > + struct oidmap_entry original; > struct object_id replacement; > -} **replace_object; > - > -static int replace_object_alloc, replace_object_nr; > +}; The oidmap key can also serve as the original side, which is good ;-) > @@ -84,7 +44,7 @@ static void prepare_replace_object(void) > > for_each_replace_ref(register_replace_ref, NULL); > replace_object_prepared = 1; > - if (!replace_object_nr) > + if (!replace_map.map.tablesize) > check_replace_refs = 0; The original checks _nr (i.e. how many do we actually have) as opposed to _alloc; on the other hand, .tablesize is not about the number of contents in the table. But before or after the patch, what the code really wants to check is if the table is _initialized_, so from that point of view, checking .tablesize is good enough. So, I guess this step is quite right ;-)