Jonathan Tan <jonathantanmy@xxxxxxxxxx> writes: > The LOOKUP_UNKNOWN_OBJECT flag was introduced in commit 46f0344 > ("sha1_file: support reading from a loose object of unknown type", > 2015-05-03) in order to support a feature in cat-file subsequently > introduced in commit 39e4ae3 ("cat-file: teach cat-file a > '--allow-unknown-type' option", 2015-05-03). Despite its name and > location in cache.h, this flag is used neither in > read_sha1_file_extended() nor in any of the lookup functions, but used > only in sha1_object_info_extended(). > > Therefore rename this flag to OBJECT_INFO_ALLOW_UNKNOWN_TYPE, taking the > name of the cat-file flag that invokes this feature, and move it closer > to the declaration of sha1_object_info_extended(). Also add > documentation for this flag. All of the above makes sense, but ... > diff --git a/cache.h b/cache.h > index 4d92aae0e..e2ec45dfe 100644 > --- a/cache.h > +++ b/cache.h > @@ -1207,7 +1207,6 @@ extern char *xdg_cache_home(const char *filename); > > /* object replacement */ > #define LOOKUP_REPLACE_OBJECT 1 > -#define LOOKUP_UNKNOWN_OBJECT 2 > extern void *read_sha1_file_extended(const unsigned char *sha1, enum object_type *type, unsigned long *size, unsigned flag); > static inline void *read_sha1_file(const unsigned char *sha1, enum object_type *type, unsigned long *size) > { > @@ -1866,6 +1865,8 @@ struct object_info { > */ > #define OBJECT_INFO_INIT {NULL} > > +/* Allow reading from a loose object file of unknown/bogus type */ > +#define OBJECT_INFO_ALLOW_UNKNOWN_TYPE 2 ... this contradicts the analysis given, doesn't it? Does something break if we change this to 1 (perhaps because in some cases this bit reach read_sha1_file_extended())? I doubt it, but leaving this to still define the bit to 2 makes readers wonder why.