1. 14 Dec, 2017 1 commit
    • Jonathan Tan's avatar
      transport: make transport vtable more private · e967ca38
      Jonathan Tan authored
      Move the definition of the transport-specific functions provided by
      transports, whether declared in transport.c or transport-helper.c, into
      an internal header. This means that transport-using code (as opposed to
      transport-declaring code) can no longer access these functions (without
      importing the internal header themselves), making it clear that they
      should use the transport_*() functions instead, and also allowing the
      interface between the transport mechanism and an individual transport to
      independently evolve.
      
      This is superficially a reversal of commit 824d5776 ("Refactor
      struct transport_ops inlined into struct transport", 2007-09-19).
      However, the scope of the involved variables was neither affected nor
      discussed in that commit, and I think that the advantages in making
      those functions more private outweigh the advantages described in that
      commit's commit message. A minor additional point is that the code has
      gotten more complicated since then, in that the function-pointer
      variables are potentially mutated twice (once initially and once if
      transport_take_over() is invoked), increasing the value of corralling
      them into their own struct.
      Signed-off-by: default avatarJonathan Tan <jonathantanmy@google.com>
      Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
      e967ca38