Re: [PATCH v2 02/10] Define utility functions for object IDs.
From: Duy Nguyen <hidden>
Date: 2016-06-15 23:04:05
On Sun, Mar 8, 2015 at 6:23 AM, brian m. carlson [off-list ref] wrote:
There are several utility functions (hashcmp and friends) that are used for comparing object IDs (SHA-1 values). Using these functions, which take pointers to unsigned char, with struct object_id requires tiresome access to the sha1 member, which bloats code and violates the desired encapsulation. Provide wrappers around these functions for struct object_id for neater, more maintainable code. Use the new constants to avoid the hard-coded 20s and 40s throughout the original functions. These functions simply call the underlying pointer-to-unsigned-char versions to ensure that any performance improvements will be passed through to the new functions. Signed-off-by: brian m. carlson <redacted> --- I'm not very excited about having to put the #include in the middle of cache.h. The alternative, of course, is to move enum object_type up, which I can do if necessary. Another alternative is to simply move the struct object_id definitions to cache.h instead of object.h, which might be cleaner. I'm interested in hearing opinions about the best way to go forward.
I think declaring struct object_id in cache.h would be simplest. Another alternative is do it in git-compat-util.h. This is not the first abuse of git-compat-util.h (because it's included everywhere). starts_with(), ends_with() and friends are already in git-compat-util.h -- Duy