From: Johan Herland Date: Tue, 26 Feb 2008 23:11:07 GMT Subject: Re: [PATCH] Fix premature free of ref_lists while writing temporary refs to file Message-ID: <200802270011.07733.johan@herland.net> In-Reply-To: On Wednesday 27 February 2008, Daniel Barkalow wrote: > On Tue, 26 Feb 2008, Johannes Schindelin wrote: > > > Hi, > > > > On Tue, 26 Feb 2008, Johan Herland wrote: > > > > > We cannot call write_ref_sha1() from within a for_each_ref() callback, > > > since it will free() the ref_list that the for_each_ref() is currently > > > traversing. > > > > > > Therefore rewrite setup_tmp_ref() to not call write_ref_sha1(), as > > > already hinted at in a comment. > > > > I guess the reason was to use a much of an API as possible. > > > > If you already avoid that, why not write into .git/packed-refs directly? > > Actually, it looks to me like the really right thing to do is tell > for_each_ref() to also include these refs temporarily, and not actually > write them to disk, read them back, and then delete them. I completely agree. ...Johan -- Johan Herland, www.herland.net