On Sun, Jul 6, 2014 at 3:37 PM, Joe Stringer <joestrin...@nicira.com> 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
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to