• 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
transport-internal.h 2.13 KB