Re: [PATCH] repository: fix free problem with repo_clear(the_repository)
- From
Stefan Beller <sbeller@google.com>
- Date
- May 10, 2018, 16:34 UTC
- Message-ID
- <CAGZ79kaSu6a+yUqmpQ+EpWjQSp+8fahk8DgpfgwRPwybnRH=eA@mail.gmail.com>
- In-Reply-To
- <xmqqbmdnkgh4.fsf@gitster-ct.c.googlers.com>
Hi Junio,
On Thu, May 10, 2018 at 2:27 AM, Junio C Hamano <gitster@pobox.com> wrote:
Show 24 quoted lines
> Stefan Beller <sbeller@google.com> writes:
>
>> So this would go with the latest sb/object-store-alloc ?
>>
>> My impression was that we never call repo_clear() on
>> the_repository, which would allow us to special case
>> the_repository further just as I did in v2 of that series[1] by
>> having static allocations for certain objects in case of \
>> the_repository.
>>
>> [1] https://public-inbox.org/git/20180501213403.14643-14-sbeller@google.com/
>>
>> We could just deal with all the exceptions, but that makes repo_clear
>> ugly IMHO.
>
> So perhaps
>
> void repo_clear(...)
> {
> + if (repo == the_repository)
> + BUG("repo_clear() called on the repository");
> ...
>
> or something?This would work, but Duy convinced me to have repo_clear working on the_repository is a good idea by giving a minimal test helper[1], which helped me to find leaks[2][3], so I'd rather go with the solution by Duy in [4] from a developers perspective.
Stefan
[1] https://public-inbox.org/git/CACsJy8C7N2W821H8YR8VaKdCSOSCDtQi_YT7z8hHNDO-VxJmEA@mail.gmail.com/
https://gist.github.com/pclouds/86a2df6c28043f1b6fa3d4e72e7a1276
[2] https://public-inbox.org/git/20180510001211.163692-1-sbeller@google.com/
[3] https://public-inbox.org/git/20180509234059.52156-1-sbeller@google.com/
[4] https://public-inbox.org/git/CACsJy8AdJcQpiGrR3p6xfuqU0=qoP3=StgbWRNCkdfka6di+5w@mail.gmail.com/