On 12/05, Jeff Hostetler wrote:
> From: Jeff Hostetler <jeffh...@microsoft.com>
> 

I'm a fan of eliminating looping goto statements.  I understand their
need for doing cleanup, but I think they should be reserved for that
specific case.  Thanks for cleaning this up!

> Signed-off-by: Jeff Hostetler <jeffh...@microsoft.com>
> ---
>  sha1_file.c | 40 ++++++++++++++++++++--------------------
>  1 file changed, 20 insertions(+), 20 deletions(-)
> 
> diff --git a/sha1_file.c b/sha1_file.c
> index fc7718a..ce67f27 100644
> --- a/sha1_file.c
> +++ b/sha1_file.c
> @@ -1180,30 +1180,30 @@ int sha1_object_info_extended(const unsigned char 
> *sha1, struct object_info *oi,
>               }
>       }
>  
> -retry:
> -     if (find_pack_entry(real, &e))
> -             goto found_packed;
> +     while (1) {
> +             if (find_pack_entry(real, &e))
> +                     break;
>  
> -     /* Most likely it's a loose object. */
> -     if (!sha1_loose_object_info(real, oi, flags))
> -             return 0;
> +             /* Most likely it's a loose object. */
> +             if (!sha1_loose_object_info(real, oi, flags))
> +                     return 0;
>  
> -     /* Not a loose object; someone else may have just packed it. */
> -     reprepare_packed_git();
> -     if (find_pack_entry(real, &e))
> -             goto found_packed;
> -
> -     /* Check if it is a missing object */
> -     if (fetch_if_missing && repository_format_partial_clone &&
> -         !already_retried) {
> -             fetch_object(repository_format_partial_clone, real);
> -             already_retried = 1;
> -             goto retry;
> -     }
> +             /* Not a loose object; someone else may have just packed it. */
> +             reprepare_packed_git();
> +             if (find_pack_entry(real, &e))
> +                     break;
>  
> -     return -1;
> +             /* Check if it is a missing object */
> +             if (fetch_if_missing && repository_format_partial_clone &&
> +                 !already_retried) {
> +                     fetch_object(repository_format_partial_clone, real);
> +                     already_retried = 1;
> +                     continue;
> +             }
> +
> +             return -1;
> +     }
>  
> -found_packed:
>       if (oi == &blank_oi)
>               /*
>                * We know that the caller doesn't actually need the
> -- 
> 2.9.3
> 

-- 
Brandon Williams

Reply via email to