On Tue, Mar 26, 2019 at 10:53:26AM -0700, Jonathan Tan wrote:

> @@ -1625,6 +1649,7 @@ struct ref *fetch_pack(struct fetch_pack_args *args,
>  {
>       struct ref *ref_cpy;
>       struct shallow_info si;
> +     struct oid_array shallows_scratch = OID_ARRAY_INIT;
>  
>       fetch_pack_setup();
>       if (nr_sought)
> @@ -1649,10 +1674,11 @@ struct ref *fetch_pack(struct fetch_pack_args *args,
>               die(_("no matching remote head"));
>       }
>       if (version == protocol_v2) {
> -             if (shallow && shallow->nr)
> +             if (shallow->nr)
>                       BUG("Protocol V2 does not provide shallows at this 
> point in the fetch");
>               memset(&si, 0, sizeof(si));
>               ref_cpy = do_fetch_pack_v2(args, fd, ref, sought, nr_sought,
> +                                        &shallows_scratch, &si,
>                                          pack_lockfile);
>       } else {
>               prepare_shallow_info(&si, shallow);
> @@ -1680,6 +1706,7 @@ struct ref *fetch_pack(struct fetch_pack_args *args,
>       update_shallow(args, sought, nr_sought, &si);
>  cleanup:
>       clear_shallow_info(&si);
> +     oid_array_clear(&shallows_scratch);
>       return ref_cpy;
>  }

Yeah, this is much clearer than what I posted earlier. Thanks for
thinking it through.

The patches look good to me, modulo the timing of the NULL thing I
mentioned elsewhere.

-Peff

Reply via email to