• Show log

    Commit

  • Hash : be41c384
    Author : Patrick Steinhardt
    Date : 2017-11-12T09:25:49

    indexer: extract function reading stream objects
    
    The loop inside of `git_indexer_append` iterates over every object that
    is to be stored as part of the index. While the logic to retrieve every
    object from the packfile stream is rather involved, it currently just
    part of the loop, making it unnecessarily hard to follow.
    
    Move the logic into its own function `read_stream_object`, which unpacks
    a single object from the stream. Note that there is some subtletly here
    involving the special error `GIT_EBUFS`, which indicates to the indexer
    that no more data is currently available. So instead of returning an
    error and aborting the whole loop in that case, we do have to catch that
    value and return successfully to wait for more data to be read.