On Wed, Jun 8, 2016 at 3:46 AM, Pranit Bauva <pranit.ba...@gmail.com> wrote:
> On Wed, Jun 8, 2016 at 4:01 AM, Eric Sunshine <sunsh...@sunshineco.com> wrote:
>> On Tue, Jun 7, 2016 at 4:54 PM, Pranit Bauva <pranit.ba...@gmail.com> wrote:
>>> +       struct string_list *refs = cb_data;
>>> +       char *ref = xstrfmt("refs/bisect/%s", refname);
>>
>> Here you're allocating a string...
>>
>>> +       string_list_append(refs, ref);
>>> +       return 0;
>>> +}
>>> +
>>> +int bisect_clean_state(void)
>>> +{
>>> +       int result = 0;
>>> +       struct string_list refs_for_removal = STRING_LIST_INIT_DUP;
>>> +       for_each_ref_in("refs/bisect/", mark_for_removal, (void *) 
>>> &refs_for_removal);
>>
>> ...and the allocated string gets inserted into a string_list which
>> itself duplicates the string (STRING_LIST_INIT_DUP), so this is
>> leaking the string you created with xstrfmt(), isn't it?
>
> Yes nice catch. I would prefer using the string_list with
> STRING_LIST_INIT_DUP and free the ref.

That's unnecessarily wasteful. Better would be to to use STRING_LIST_INIT_NODUP.
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to