Re: [PATCH 05/31] environment: remove namespace_len variable

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, May 31, 2017 at 2:43 PM, Brandon Williams <bmwill@xxxxxxxxxx> wrote:
> Use 'skip_prefix' instead of 'starts_with' so that we can drop the need
> to keep around 'namespace_len'.

Looks correct.

Performance wise:
The strip_namespace function is only called from {receive/upload}-pack
and http-backend, so all network operations, whose actual operations
should far outweight the tiny CPU saving that this reverts.
We should be fine?

> Signed-off-by: Brandon Williams <bmwill@xxxxxxxxxx>
> ---
>  environment.c | 9 ++++-----
>  1 file changed, 4 insertions(+), 5 deletions(-)
>
> diff --git a/environment.c b/environment.c
> index a73b08f5d..e035f6372 100644
> --- a/environment.c
> +++ b/environment.c
> @@ -98,7 +98,6 @@ char *git_work_tree_cfg;
>  static char *work_tree;
>
>  static const char *namespace;
> -static size_t namespace_len;
>
>  static const char *super_prefix;
>
> @@ -190,7 +189,6 @@ void setup_git_env(void)
>         git_replace_ref_base = xstrdup(replace_ref_base ? replace_ref_base
>                                                           : "refs/replace/");
>         namespace = expand_namespace(getenv(GIT_NAMESPACE_ENVIRONMENT));
> -       namespace_len = strlen(namespace);
>         shallow_file = getenv(GIT_SHALLOW_FILE_ENVIRONMENT);
>         if (shallow_file)
>                 set_alternate_shallow_file(shallow_file, 0);
> @@ -231,9 +229,10 @@ const char *get_git_namespace(void)
>
>  const char *strip_namespace(const char *namespaced_ref)
>  {
> -       if (!starts_with(namespaced_ref, get_git_namespace()))
> -               return NULL;
> -       return namespaced_ref + namespace_len;
> +       const char *out;
> +       if (skip_prefix(namespaced_ref, get_git_namespace(), &out))
> +               return out;
> +       return NULL;
>  }
>
>  const char *get_super_prefix(void)
> --
> 2.13.0.506.g27d5fe0cd-goog
>



[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]