Taylor Blau <me@xxxxxxxxxxxx> writes: > ... same question about why assigning: > > struct repository *r = the_repository; > > and passing 'r' everywhere is preferable to simply passing > 'the_repository' in directly. > ... >> static void mark_object_for_connectivity(const struct object_id *oid) >> { >> - struct object *obj = lookup_unknown_object(oid); >> + struct repository *r = the_repository; >> + struct object *obj = lookup_unknown_object(r, oid); >> obj->flags |= HAS_OBJ; >> } I do not claim that it applies to this particular function, and the function is too small for it to matter, but when a function is large enough and it always works on one single repository, it would make it easier to later update the function further to set up 'r' upfront, making it point at the_repository for now, and to use 'r' throughout the function. That way, when the time comes to update the function to work on an arbitrary repository, the only change required will be to turn the local variable 'r' to an incoming parameter the caller can supply.