git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH v3] skip_prefix: rewrite so that prefix is scanned once

From
Duy Nguyen <pclouds@gmail.com>
Date
Mar 3, 2014, 23:37 UTC
Message-ID
<CACsJy8ASBeravdk67pbOJbrFUbwg21JwYcLtSbDDMJOu9-F=yA@mail.gmail.com>
In-Reply-To
<xmqq61nuoqd5.fsf@gitster.dls.corp.google.com>
On Tue, Mar 4, 2014 at 5:43 AM, Junio C Hamano <gitster@pobox.com> wrote:
Show 10 quoted lines
> diff --git a/git-compat-util.h b/git-compat-util.h
> index cbd86c3..68ffaef 100644
> --- a/git-compat-util.h
> +++ b/git-compat-util.h
> @@ -357,8 +357,14 @@ extern int suffixcmp(const char *str, const char *suffix);
>
>  static inline const char *skip_prefix(const char *str, const char *prefix)
>  {
> -       size_t len = strlen(prefix);
> -       return strncmp(str, prefix, len) ? NULL : str + len;

Just a note. gcc does optimize strlen("abcdef") to 6, and with that information at compile time built-in strncmp might do better.

Show 11 quoted lines
> +       while (1) {
> +               if (!*prefix)
> +                       return str;
> +               if (*str != *prefix)
> +                       return NULL;
> +               prefix++;
> +               str++;
> +       }
>  }
>
>  #if defined(NO_MMAP) || defined(USE_WIN32_MMAP)
-- 
Duy
Previous: Junio C HamanoNext: David Kastrup
Message 6 of 9 in “skip_prefix: rewrite so that prefix is scanned once”
  1. skip_prefix: rewrite so that prefix is scanned onceSiddharth Goel, Mar 3, 2014
  2. Junio C HamanoMar 3, 2014
  3. Junio C HamanoMar 3, 2014
  4. David KastrupMar 3, 2014
  5. Junio C HamanoMar 3, 2014
  6. Duy NguyenMar 3, 2014
  7. David KastrupMar 4, 2014
  8. Duy NguyenMar 4, 2014
  9. David KastrupMar 4, 2014

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.