From: Daniel Barkalow Date: Fri, 21 Oct 2005 15:44:14 GMT Subject: Re: [PATCH] Do not send "want" lines for complete objects Message-ID: In-Reply-To: On Fri, 21 Oct 2005, Johannes Schindelin wrote: > Hi, > > On Thu, 20 Oct 2005, Daniel Barkalow wrote: > > > On Thu, 20 Oct 2005, Johannes Schindelin wrote: > > > > > Hi, > > > > > > > > + ((o = parse_object(remote)) != NULL) && > > > > > + (o->flags & COMPLETE) && > > > > > > I just realized that parse_object() always reads the file, then does a > > > lookup (which makes the above code work), and then parses the file. It > > > always does all of these steps, even if the object was already parsed. Any > > > reason for this? > > > > I'm lazy and haven't sent in a patch to clean that up. There's no reason > > it couldn't check whether the value it gets is already parsed. > > Actually, you don't have to... Junio already replaced parse_object() by > lookup_object() in this case. It often gets used in cases where it isn't completely obvious that the object has already been parsed; this is the second place that it's been replaced. > I did not use it originally, because lines 24-25 of commit.h say > > /** Internal only **/ > struct object *lookup_object(const unsigned char *sha1); > > Is this obsolete? I'd intended it to be internal, for use by things like lookup_tree(), but I suppose that it could be used more generally, if it got a comment that says that, unlike lookup_tree() and such, it returns NULL if the object has not already been read (because it doesn't know how to create it). -Daniel *This .sig left intentionally blank*