[prev in list] [next in list] [prev in thread] [next in thread]
List: git
Subject: Re: [PATCH 07/39] sha1_file: add repository argument to alt_odb_usable
From: Brandon Williams <bmwill () google ! com>
Date: 2017-08-30 22:40:28
Message-ID: 20170830224028.GE50018 () google ! com
[Download RAW message or body]
On 08/29, Jonathan Nieder wrote:
> From: Stefan Beller <sbeller@google.com>
>
> Add a repository argument to allow the alt_odb_usable caller to be
> more specific about which repository to act on. This is a small
> mechanical change; it doesn't change the implementation to handle
> repositories other than the_repository yet.
>
> Since the implementation does not yet work with other repositories,
> use a wrapper macro to enforce that the caller passes in
> the_repository as the first argument. It would be more appealing to
> use BUILD_ASSERT_OR_ZERO to enforce this, but that doesn't work
> because it requires a compile-time constant and common compilers like
> gcc 4.8.4 do not consider "r == the_repository" a compile-time
> constant.
Very clever trick :)
>
> Signed-off-by: Stefan Beller <sbeller@google.com>
> Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
> ---
> sha1_file.c | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/sha1_file.c b/sha1_file.c
> index 7c6ffd205a..1c757b44a3 100644
> --- a/sha1_file.c
> +++ b/sha1_file.c
> @@ -280,7 +280,9 @@ static const char *alt_sha1_path(struct alternate_object_database *alt,
> /*
> * Return non-zero iff the path is usable as an alternate object database.
> */
> -static int alt_odb_usable(struct strbuf *path, const char *normalized_objdir)
> +#define alt_odb_usable(r, p, n) alt_odb_usable_##r(p, n)
> +static int alt_odb_usable_the_repository(struct strbuf *path,
> + const char *normalized_objdir)
> {
> struct alternate_object_database *alt;
>
> @@ -348,7 +350,7 @@ static int link_alt_odb_entry(const char *entry, const char *relative_base,
> while (pathbuf.len && pathbuf.buf[pathbuf.len - 1] == '/')
> strbuf_setlen(&pathbuf, pathbuf.len - 1);
>
> - if (!alt_odb_usable(&pathbuf, normalized_objdir)) {
> + if (!alt_odb_usable(the_repository, &pathbuf, normalized_objdir)) {
> strbuf_release(&pathbuf);
> return -1;
> }
> --
> 2.14.1.581.gf28d330327
>
--
Brandon Williams
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic