On Fri, Apr 09, 2021 at 10:07:28AM +0200, Ævar Arnfjörð Bjarmason wrote: > Initialize a "struct object obj*" variable to NULL explicitly and > return it instead of leaving it uninitialized until the "while" > loop. > > There was no bug here, it's just less confusing when debugging if the > "obj" is either NULL or a valid object, not some random invalid > pointer. > > [...] > > struct object *lookup_object(struct repository *r, const struct object_id *oid) > { > unsigned int i, first; > - struct object *obj; > + struct object *obj = NULL; > > if (!r->parsed_objects->obj_hash) > - return NULL; > + return obj; I actually prefer the original style (where any "can we bail early" checks just explicitly return NULL, rather than making you check to see that obj is NULL). But it's pretty subjective, and I don't feel strongly. > first = i = hash_obj(oid, r->parsed_objects->obj_hash_size); > while ((obj = r->parsed_objects->obj_hash[i]) != NULL) { The important thing is that "obj" is not used uninitialized, which it isn't (before or after). -Peff