• Show log

    Commit

  • Hash : 608d33fa
    Author : Ramsay Jones
    Date : 2010-02-26T19:59:06

    Add a pack index 'virtual function' to search by file offset
    
    In addition to searching the index by oid, we need to search by
    '.pack' file offset, particularly when processing OBJ_OFS_DELTA
    objects. Since the v1 and v2 file formats differ in the layout
    of the object records, we provide two implementations of the
    search function and initialise the (virtual) function pointer
    appropriately.
    
    Note that, as part of the creation of the 'offset index', we also
    add a check that the offset data in the index is within the bounds
    of the '.pack' file. Having sorted the file offsets, while creating
    the index, we only need to check the smallest and largest values.
    
    The offset index consists of the im_off_idx array, which contains
    the index entry numbers sorted into file offset order, and the
    im_off_next mapping array. The im_off_next array maps an index
    entry number to the 'next' index entry in file offset order.
    
    Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>