object.h: move some inline functions and defines from cache.h
The object_type() inline function is very tied to the enum object_type declaration within object.h, and just seemed to make more sense to live there. That makes S_ISGITLINK and some other defines make sense to go with it, as well as the create_ce_mode() and canon_mode() inline functions. Move all these inline functions and defines from cache.h to object.h. Signed-off-by: Elijah Newren <newren@gmail.com> Acked-by: Calvin Wan <calvinwan@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
b6fdc44c84
commit
8876ea83a7
42
cache.h
42
cache.h
@ -28,18 +28,6 @@
|
|||||||
#define DTYPE(de) DT_UNKNOWN
|
#define DTYPE(de) DT_UNKNOWN
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* unknown mode (impossible combination S_IFIFO|S_IFCHR) */
|
|
||||||
#define S_IFINVALID 0030000
|
|
||||||
|
|
||||||
/*
|
|
||||||
* A "directory link" is a link to another git directory.
|
|
||||||
*
|
|
||||||
* The value 0160000 is not normally a valid mode, and
|
|
||||||
* also just happens to be S_IFDIR + S_IFLNK
|
|
||||||
*/
|
|
||||||
#define S_IFGITLINK 0160000
|
|
||||||
#define S_ISGITLINK(m) (((m) & S_IFMT) == S_IFGITLINK)
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Some mode bits are also used internally for computations.
|
* Some mode bits are also used internally for computations.
|
||||||
*
|
*
|
||||||
@ -155,8 +143,6 @@ struct cache_entry {
|
|||||||
#error "CE_EXTENDED_FLAGS out of range"
|
#error "CE_EXTENDED_FLAGS out of range"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define S_ISSPARSEDIR(m) ((m) == S_IFDIR)
|
|
||||||
|
|
||||||
/* Forward structure decls */
|
/* Forward structure decls */
|
||||||
struct pathspec;
|
struct pathspec;
|
||||||
struct child_process;
|
struct child_process;
|
||||||
@ -197,17 +183,6 @@ static inline unsigned create_ce_flags(unsigned stage)
|
|||||||
#define ce_mark_uptodate(ce) ((ce)->ce_flags |= CE_UPTODATE)
|
#define ce_mark_uptodate(ce) ((ce)->ce_flags |= CE_UPTODATE)
|
||||||
#define ce_intent_to_add(ce) ((ce)->ce_flags & CE_INTENT_TO_ADD)
|
#define ce_intent_to_add(ce) ((ce)->ce_flags & CE_INTENT_TO_ADD)
|
||||||
|
|
||||||
#define ce_permissions(mode) (((mode) & 0100) ? 0755 : 0644)
|
|
||||||
static inline unsigned int create_ce_mode(unsigned int mode)
|
|
||||||
{
|
|
||||||
if (S_ISLNK(mode))
|
|
||||||
return S_IFLNK;
|
|
||||||
if (S_ISSPARSEDIR(mode))
|
|
||||||
return S_IFDIR;
|
|
||||||
if (S_ISDIR(mode) || S_ISGITLINK(mode))
|
|
||||||
return S_IFGITLINK;
|
|
||||||
return S_IFREG | ce_permissions(mode);
|
|
||||||
}
|
|
||||||
static inline unsigned int ce_mode_from_stat(const struct cache_entry *ce,
|
static inline unsigned int ce_mode_from_stat(const struct cache_entry *ce,
|
||||||
unsigned int mode)
|
unsigned int mode)
|
||||||
{
|
{
|
||||||
@ -234,16 +209,6 @@ static inline int ce_to_dtype(const struct cache_entry *ce)
|
|||||||
else
|
else
|
||||||
return DT_UNKNOWN;
|
return DT_UNKNOWN;
|
||||||
}
|
}
|
||||||
static inline unsigned int canon_mode(unsigned int mode)
|
|
||||||
{
|
|
||||||
if (S_ISREG(mode))
|
|
||||||
return S_IFREG | ce_permissions(mode);
|
|
||||||
if (S_ISLNK(mode))
|
|
||||||
return S_IFLNK;
|
|
||||||
if (S_ISDIR(mode))
|
|
||||||
return S_IFDIR;
|
|
||||||
return S_IFGITLINK;
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline int ce_path_match(struct index_state *istate,
|
static inline int ce_path_match(struct index_state *istate,
|
||||||
const struct cache_entry *ce,
|
const struct cache_entry *ce,
|
||||||
@ -414,13 +379,6 @@ void prefetch_cache_entries(const struct index_state *istate,
|
|||||||
extern struct index_state the_index;
|
extern struct index_state the_index;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static inline enum object_type object_type(unsigned int mode)
|
|
||||||
{
|
|
||||||
return S_ISDIR(mode) ? OBJ_TREE :
|
|
||||||
S_ISGITLINK(mode) ? OBJ_COMMIT :
|
|
||||||
OBJ_BLOB;
|
|
||||||
}
|
|
||||||
|
|
||||||
#define INIT_DB_QUIET 0x0001
|
#define INIT_DB_QUIET 0x0001
|
||||||
#define INIT_DB_EXIST_OK 0x0002
|
#define INIT_DB_EXIST_OK 0x0002
|
||||||
|
|
||||||
|
44
object.h
44
object.h
@ -101,6 +101,50 @@ enum object_type {
|
|||||||
OBJ_MAX
|
OBJ_MAX
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/* unknown mode (impossible combination S_IFIFO|S_IFCHR) */
|
||||||
|
#define S_IFINVALID 0030000
|
||||||
|
|
||||||
|
/*
|
||||||
|
* A "directory link" is a link to another git directory.
|
||||||
|
*
|
||||||
|
* The value 0160000 is not normally a valid mode, and
|
||||||
|
* also just happens to be S_IFDIR + S_IFLNK
|
||||||
|
*/
|
||||||
|
#define S_IFGITLINK 0160000
|
||||||
|
#define S_ISGITLINK(m) (((m) & S_IFMT) == S_IFGITLINK)
|
||||||
|
|
||||||
|
#define S_ISSPARSEDIR(m) ((m) == S_IFDIR)
|
||||||
|
|
||||||
|
static inline enum object_type object_type(unsigned int mode)
|
||||||
|
{
|
||||||
|
return S_ISDIR(mode) ? OBJ_TREE :
|
||||||
|
S_ISGITLINK(mode) ? OBJ_COMMIT :
|
||||||
|
OBJ_BLOB;
|
||||||
|
}
|
||||||
|
|
||||||
|
#define ce_permissions(mode) (((mode) & 0100) ? 0755 : 0644)
|
||||||
|
static inline unsigned int create_ce_mode(unsigned int mode)
|
||||||
|
{
|
||||||
|
if (S_ISLNK(mode))
|
||||||
|
return S_IFLNK;
|
||||||
|
if (S_ISSPARSEDIR(mode))
|
||||||
|
return S_IFDIR;
|
||||||
|
if (S_ISDIR(mode) || S_ISGITLINK(mode))
|
||||||
|
return S_IFGITLINK;
|
||||||
|
return S_IFREG | ce_permissions(mode);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline unsigned int canon_mode(unsigned int mode)
|
||||||
|
{
|
||||||
|
if (S_ISREG(mode))
|
||||||
|
return S_IFREG | ce_permissions(mode);
|
||||||
|
if (S_ISLNK(mode))
|
||||||
|
return S_IFLNK;
|
||||||
|
if (S_ISDIR(mode))
|
||||||
|
return S_IFDIR;
|
||||||
|
return S_IFGITLINK;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The object type is stored in 3 bits.
|
* The object type is stored in 3 bits.
|
||||||
*/
|
*/
|
||||||
|
Loading…
Reference in New Issue
Block a user