On Thu, May 02, 2013 at 08:44:07AM +0200, Johannes Sixt wrote: > Am 5/1/2013 22:34, schrieb Jeff King: > > struct object *lookup_object(const unsigned char *sha1) > > { > > - unsigned int i; > > + unsigned int i, first; > > struct object *obj; > > > > if (!obj_hash) > > return NULL; > > > > - i = hashtable_index(sha1); > > + first = i = hashtable_index(sha1); > > while ((obj = obj_hash[i]) != NULL) { > > if (!hashcmp(sha1, obj->sha1)) > > break; > > @@ -85,6 +85,11 @@ struct object *lookup_object(const unsigned char *sha1) > > if (i == obj_hash_size) > > i = 0; > > } > > + if (obj && i != first) { > > + struct object *tmp = obj_hash[i]; > > + obj_hash[i] = obj_hash[first]; > > + obj_hash[first] = tmp; > > + } > > return obj; > > } > > This is one of the places where I think the code does not speak for itself > and a comment is warranted: The new if statement is not about correctness, > but about optimization: I figured the lengthy description in the commit message would be sufficient, but I don't mind adding something like your suggestion to point readers of the code in the right direction when they see it. -Peff -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html