• Jeff King's avatar
    convert hashmap comparison functions to oideq() · cc00e5ce
    Jeff King authored
    The comparison functions used for hashmaps don't care about
    strict ordering; they only want to compare entries for
    equality. Let's use the oideq() function instead, which can
    potentially be better optimized. Note that unlike the
    previous patches mass-converting calls like "!oidcmp()",
    this patch could actually provide an improvement even with
    the current implementation. Those comparison functions are
    passed around as function pointers, so at compile-time the
    compiler cannot realize that the caller (which is in another
    file completely) will treat the return value as a boolean.
    
    Note that this does change the return values in quite a
    subtle way (it's still an int, but now the sign bit is
    irrelevant for ordering). Because of their funny
    hashmap-specific signature, it's unlikely that any of these
    static functions would be reused for more generic ordering.
    But to be double-sure, let's stop using "cmp" in their
    names.
    
    Calling them "eq" doesn't quite work either, because the
    hashmap convention is actually _inverted_. "0" means "same",
    and non-zero means "different". So I've called them "neq" by
    convention here.
    Signed-off-by: 's avatarJeff King <peff@peff.net>
    Signed-off-by: 's avatarJunio C Hamano <gitster@pobox.com>
    cc00e5ce
oidmap.c 1.38 KB