Just to be clear, I have no objection to adding strdup() to all
functions that return strings.
I don't like adding unnecessary free() statements to the end of
called-once functions such as main, especially if you also have to add
labels and gotos and temporary variables to keep track of these.
On 09/08/2014 11:00 AM, Bill Spitzak wrote:
On 09/07/2014 11:28 PM, Pekka Paalanen wrote:
I think it is safe to assume the contents of argv will not get
overwritten.
It is common to copy argv itself and modify that, but not to modify the
strings it points at.
This would be feasible only if we can guarantee that no-one will ever
need to store a dynamically allocated string to any of the assigned
variables. If something produces a dynamically allocated string, then
you would need to track if you can free() the string or not.
Or you can just leak that dynamically allocated value, which is what I
would do.
Trying to shut up valgrind on exit is an exercise in futility and adding
a free() to try to shut it up often requires lots of unwanted code
changes as this demonstrates.
Any way it is not a big deal and any real system will probably be based
on string objects of some sort. It sounds like you should also change
the parse_options to copy all the string arguments too.
_______________________________________________
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/wayland-devel