Re: [PATCH] path-list.c: always free strdup'ed paths
- From
René Scharfe <rene.scharfe@lsrfire.ath.cx>
- Date
- Jul 7, 2007, 20:03 UTC
- Message-ID
- <468FF19E.8020406@lsrfire.ath.cx>
- In-Reply-To
- <Pine.LNX.4.64.0707072036530.4093@racer.site>
Johannes Schindelin schrieb:
Show 12 quoted lines
> Hi, > > On Sat, 7 Jul 2007, Ren? Scharfe wrote: > >> Always free .paths if .strdup_paths is set, no matter if the >> parameter free_items is set or not, plugging a minor memory leak. >> And to clarify the meaning of the flag, rename it to free_util, >> since it now only affects the freeing of the .util field. > > The rational was that it might very well be possible that the > pointers you hand to the path_list are already strdup()ed. So you do > not set strdup_paths, but you want them free()d.
The patch doesn't take that away, i.e. .path fields are not freed if .strdup_paths is not set, both before and after the patch. And the workaround used in builtin-shortlog.c, viz. setting .strdup_paths just before calling path_list_clear(), still works.
> The .util field is in many cases something that is not trivially > free()d, but has to call a type-specific function, such as > path_list_clear() itself.
Indeed; this is a good reason to separate freeing of .util and .path, no?
René