On Sun, Jul 6, 2014 at 3:37 PM, Joe Stringer <[email protected]> wrote:
> I feel like this is easier to follow if there's only one #ifdef block.
Thanks for pointing this out. This can actually be factorized out even
more by taking out free(program_name) out of both #ifdefs. Will send
v2 patch soon.
>
> We could combine the blocks and make the two platforms more aligned with
> something like this (based against master):
>
> diff --git a/lib/util.c b/lib/util.c
> index 4f9b079..c65051d 100644
> --- a/lib/util.c
> +++ b/lib/util.c
> @@ -43,7 +43,7 @@ VLOG_DEFINE_THIS_MODULE(util);
> COVERAGE_DEFINE(util_xalloc);
>
> /* argv[0] without directory names. */
> -const char *program_name;
> +char *program_name;
>
> /* Name for the currently running thread or process, for log messages,
> process
> * listings, and debuggers. */
> @@ -455,25 +455,26 @@ void
> set_program_name__(const char *argv0, const char *version, const char
> *date,
> const char *time)
> {
> - free(program_name);
> + char *basename;
>
> #ifdef _WIN32
> - char *basename;
> size_t max_len = strlen(argv0) + 1;
>
> SetErrorMode(GetErrorMode() | SEM_NOGPFAULTERRORBOX);
> _set_output_format(_TWO_DIGIT_EXPONENT);
>
> + free(program_name);
> basename = xmalloc(max_len);
> _splitpath_s(argv0, NULL, 0, NULL, 0, basename, max_len, NULL, 0);
> - assert_single_threaded();
> - program_name = basename;
> #else
> const char *slash = strrchr(argv0, '/');
> - assert_single_threaded();
> - program_name = xstrdup(slash ? slash + 1 : argv0);
> +
> + free(program_name);
> + basename = xstrdup(slash ? slash + 1 : argv0);
> #endif
>
> + assert_single_threaded();
> + program_name = basename;
> free(program_version);
>
> if (!strcmp(version, VERSION)) {
> diff --git a/lib/util.h b/lib/util.h
> index b626c0b..dc34ee5 100644
> --- a/lib/util.h
> +++ b/lib/util.h
> @@ -86,7 +86,7 @@ void ovs_assert_failure(const char *, const char *, const
> char *) NO_RETURN;
> ((void) sizeof ((int) ((POINTER) == (TYPE) (POINTER))), \
> (TYPE) (POINTER))
>
> -extern const char *program_name;
> +extern char *program_name;
>
> #define __ARRAY_SIZE_NOCHECK(ARRAY) (sizeof(ARRAY) / sizeof((ARRAY)[0]))
> #ifdef __GNUC__
_______________________________________________
dev mailing list
[email protected]
http://openvswitch.org/mailman/listinfo/dev