зеркало из https://github.com/microsoft/git.git
Use 'unsigned short' for mode, like diff_filespec does
struct diff_filespec defines mode to be an 'unsigned short'. Several other places in the API which we'd like to interact with using a diff_filespec used a plain unsigned (or unsigned int). This caused problems when taking addresses, so switch to unsigned short. Signed-off-by: Elijah Newren <newren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Родитель
041f5ea1cf
Коммит
5ec1e72823
|
@ -415,7 +415,7 @@ static void parse_treeish_arg(const char **argv,
|
||||||
|
|
||||||
if (prefix) {
|
if (prefix) {
|
||||||
struct object_id tree_oid;
|
struct object_id tree_oid;
|
||||||
unsigned int mode;
|
unsigned short mode;
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
err = get_tree_entry(&tree->object.oid, prefix, &tree_oid,
|
err = get_tree_entry(&tree->object.oid, prefix, &tree_oid,
|
||||||
|
|
2
blame.c
2
blame.c
|
@ -99,7 +99,7 @@ static void verify_working_tree_path(struct repository *r,
|
||||||
for (parents = work_tree->parents; parents; parents = parents->next) {
|
for (parents = work_tree->parents; parents; parents = parents->next) {
|
||||||
const struct object_id *commit_oid = &parents->item->object.oid;
|
const struct object_id *commit_oid = &parents->item->object.oid;
|
||||||
struct object_id blob_oid;
|
struct object_id blob_oid;
|
||||||
unsigned mode;
|
unsigned short mode;
|
||||||
|
|
||||||
if (!get_tree_entry(commit_oid, path, &blob_oid, &mode) &&
|
if (!get_tree_entry(commit_oid, path, &blob_oid, &mode) &&
|
||||||
oid_object_info(r, &blob_oid, NULL) == OBJ_BLOB)
|
oid_object_info(r, &blob_oid, NULL) == OBJ_BLOB)
|
||||||
|
|
2
blame.h
2
blame.h
|
@ -52,7 +52,7 @@ struct blame_origin {
|
||||||
struct blame_entry *suspects;
|
struct blame_entry *suspects;
|
||||||
mmfile_t file;
|
mmfile_t file;
|
||||||
struct object_id blob_oid;
|
struct object_id blob_oid;
|
||||||
unsigned mode;
|
unsigned short mode;
|
||||||
/* guilty gets set when shipping any suspects to the final
|
/* guilty gets set when shipping any suspects to the final
|
||||||
* blame list instead of other commits
|
* blame list instead of other commits
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -110,7 +110,7 @@ static int check_local_mod(struct object_id *head, int index_only)
|
||||||
const struct cache_entry *ce;
|
const struct cache_entry *ce;
|
||||||
const char *name = list.entry[i].name;
|
const char *name = list.entry[i].name;
|
||||||
struct object_id oid;
|
struct object_id oid;
|
||||||
unsigned mode;
|
unsigned short mode;
|
||||||
int local_changes = 0;
|
int local_changes = 0;
|
||||||
int staged_changes = 0;
|
int staged_changes = 0;
|
||||||
|
|
||||||
|
|
|
@ -597,7 +597,7 @@ static struct cache_entry *read_one_ent(const char *which,
|
||||||
struct object_id *ent, const char *path,
|
struct object_id *ent, const char *path,
|
||||||
int namelen, int stage)
|
int namelen, int stage)
|
||||||
{
|
{
|
||||||
unsigned mode;
|
unsigned short mode;
|
||||||
struct object_id oid;
|
struct object_id oid;
|
||||||
struct cache_entry *ce;
|
struct cache_entry *ce;
|
||||||
|
|
||||||
|
|
2
cache.h
2
cache.h
|
@ -1331,7 +1331,7 @@ static inline int hex2chr(const char *s)
|
||||||
#define FALLBACK_DEFAULT_ABBREV 7
|
#define FALLBACK_DEFAULT_ABBREV 7
|
||||||
|
|
||||||
struct object_context {
|
struct object_context {
|
||||||
unsigned mode;
|
unsigned short mode;
|
||||||
/*
|
/*
|
||||||
* symlink_path is only used by get_tree_entry_follow_symlinks,
|
* symlink_path is only used by get_tree_entry_follow_symlinks,
|
||||||
* and only for symlinks that point outside the repository.
|
* and only for symlinks that point outside the repository.
|
||||||
|
|
2
fsck.c
2
fsck.c
|
@ -604,7 +604,7 @@ static int fsck_tree(struct tree *item, struct fsck_options *options)
|
||||||
o_name = NULL;
|
o_name = NULL;
|
||||||
|
|
||||||
while (desc.size) {
|
while (desc.size) {
|
||||||
unsigned mode;
|
unsigned short mode;
|
||||||
const char *name;
|
const char *name;
|
||||||
const struct object_id *oid;
|
const struct object_id *oid;
|
||||||
|
|
||||||
|
|
|
@ -498,7 +498,7 @@ static struct commit *check_single_commit(struct rev_info *revs)
|
||||||
|
|
||||||
static void fill_blob_sha1(struct commit *commit, struct diff_filespec *spec)
|
static void fill_blob_sha1(struct commit *commit, struct diff_filespec *spec)
|
||||||
{
|
{
|
||||||
unsigned mode;
|
unsigned short mode;
|
||||||
struct object_id oid;
|
struct object_id oid;
|
||||||
|
|
||||||
if (get_tree_entry(&commit->object.oid, spec->path, &oid, &mode))
|
if (get_tree_entry(&commit->object.oid, spec->path, &oid, &mode))
|
||||||
|
|
|
@ -140,7 +140,7 @@ static void match_trees(const struct object_id *hash1,
|
||||||
while (one.size) {
|
while (one.size) {
|
||||||
const char *path;
|
const char *path;
|
||||||
const struct object_id *elem;
|
const struct object_id *elem;
|
||||||
unsigned mode;
|
unsigned short mode;
|
||||||
int score;
|
int score;
|
||||||
|
|
||||||
elem = tree_entry_extract(&one, &path, &mode);
|
elem = tree_entry_extract(&one, &path, &mode);
|
||||||
|
@ -196,7 +196,7 @@ static int splice_tree(const struct object_id *oid1, const char *prefix,
|
||||||
rewrite_here = NULL;
|
rewrite_here = NULL;
|
||||||
while (desc.size) {
|
while (desc.size) {
|
||||||
const char *name;
|
const char *name;
|
||||||
unsigned mode;
|
unsigned short mode;
|
||||||
|
|
||||||
tree_entry_extract(&desc, &name, &mode);
|
tree_entry_extract(&desc, &name, &mode);
|
||||||
if (strlen(name) == toplen &&
|
if (strlen(name) == toplen &&
|
||||||
|
@ -285,7 +285,7 @@ void shift_tree(const struct object_id *hash1,
|
||||||
|
|
||||||
if (add_score < del_score) {
|
if (add_score < del_score) {
|
||||||
/* We need to pick a subtree of two */
|
/* We need to pick a subtree of two */
|
||||||
unsigned mode;
|
unsigned short mode;
|
||||||
|
|
||||||
if (!*del_prefix)
|
if (!*del_prefix)
|
||||||
return;
|
return;
|
||||||
|
@ -313,7 +313,7 @@ void shift_tree_by(const struct object_id *hash1,
|
||||||
const char *shift_prefix)
|
const char *shift_prefix)
|
||||||
{
|
{
|
||||||
struct object_id sub1, sub2;
|
struct object_id sub1, sub2;
|
||||||
unsigned mode1, mode2;
|
unsigned short mode1, mode2;
|
||||||
unsigned candidate = 0;
|
unsigned candidate = 0;
|
||||||
|
|
||||||
/* Can hash2 be a tree at shift_prefix in tree hash1? */
|
/* Can hash2 be a tree at shift_prefix in tree hash1? */
|
||||||
|
|
|
@ -214,7 +214,7 @@ struct rename_conflict_info {
|
||||||
*/
|
*/
|
||||||
struct stage_data {
|
struct stage_data {
|
||||||
struct {
|
struct {
|
||||||
unsigned mode;
|
unsigned short mode;
|
||||||
struct object_id oid;
|
struct object_id oid;
|
||||||
} stages[4];
|
} stages[4];
|
||||||
struct rename_conflict_info *rename_conflict_info;
|
struct rename_conflict_info *rename_conflict_info;
|
||||||
|
@ -482,7 +482,7 @@ static void get_files_dirs(struct merge_options *o, struct tree *tree)
|
||||||
static int get_tree_entry_if_blob(const struct object_id *tree,
|
static int get_tree_entry_if_blob(const struct object_id *tree,
|
||||||
const char *path,
|
const char *path,
|
||||||
struct object_id *hashy,
|
struct object_id *hashy,
|
||||||
unsigned int *mode_o)
|
unsigned short *mode_o)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
|
@ -1935,7 +1935,7 @@ static struct diff_queue_struct *get_diffpairs(struct merge_options *o,
|
||||||
static int tree_has_path(struct tree *tree, const char *path)
|
static int tree_has_path(struct tree *tree, const char *path)
|
||||||
{
|
{
|
||||||
struct object_id hashy;
|
struct object_id hashy;
|
||||||
unsigned int mode_o;
|
unsigned short mode_o;
|
||||||
|
|
||||||
return !get_tree_entry(&tree->object.oid, path,
|
return !get_tree_entry(&tree->object.oid, path,
|
||||||
&hashy, &mode_o);
|
&hashy, &mode_o);
|
||||||
|
|
2
notes.c
2
notes.c
|
@ -986,7 +986,7 @@ void init_notes(struct notes_tree *t, const char *notes_ref,
|
||||||
combine_notes_fn combine_notes, int flags)
|
combine_notes_fn combine_notes, int flags)
|
||||||
{
|
{
|
||||||
struct object_id oid, object_oid;
|
struct object_id oid, object_oid;
|
||||||
unsigned mode;
|
unsigned short mode;
|
||||||
struct leaf_node root_tree;
|
struct leaf_node root_tree;
|
||||||
|
|
||||||
if (!t)
|
if (!t)
|
||||||
|
|
|
@ -1577,7 +1577,7 @@ static void diagnose_invalid_oid_path(const char *prefix,
|
||||||
int object_name_len)
|
int object_name_len)
|
||||||
{
|
{
|
||||||
struct object_id oid;
|
struct object_id oid;
|
||||||
unsigned mode;
|
unsigned short mode;
|
||||||
|
|
||||||
if (!prefix)
|
if (!prefix)
|
||||||
prefix = "";
|
prefix = "";
|
||||||
|
|
|
@ -181,7 +181,7 @@ static struct combine_diff_path *emit_path(struct combine_diff_path *p,
|
||||||
struct tree_desc *t, struct tree_desc *tp,
|
struct tree_desc *t, struct tree_desc *tp,
|
||||||
int imin)
|
int imin)
|
||||||
{
|
{
|
||||||
unsigned mode;
|
unsigned short mode;
|
||||||
const char *path;
|
const char *path;
|
||||||
const struct object_id *oid;
|
const struct object_id *oid;
|
||||||
int pathlen;
|
int pathlen;
|
||||||
|
|
|
@ -500,7 +500,7 @@ struct dir_state {
|
||||||
struct object_id oid;
|
struct object_id oid;
|
||||||
};
|
};
|
||||||
|
|
||||||
static int find_tree_entry(struct tree_desc *t, const char *name, struct object_id *result, unsigned *mode)
|
static int find_tree_entry(struct tree_desc *t, const char *name, struct object_id *result, unsigned short *mode)
|
||||||
{
|
{
|
||||||
int namelen = strlen(name);
|
int namelen = strlen(name);
|
||||||
while (t->size) {
|
while (t->size) {
|
||||||
|
@ -535,7 +535,7 @@ static int find_tree_entry(struct tree_desc *t, const char *name, struct object_
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
int get_tree_entry(const struct object_id *tree_oid, const char *name, struct object_id *oid, unsigned *mode)
|
int get_tree_entry(const struct object_id *tree_oid, const char *name, struct object_id *oid, unsigned short *mode)
|
||||||
{
|
{
|
||||||
int retval;
|
int retval;
|
||||||
void *tree;
|
void *tree;
|
||||||
|
@ -585,7 +585,7 @@ int get_tree_entry(const struct object_id *tree_oid, const char *name, struct ob
|
||||||
* See the code for enum get_oid_result for a description of
|
* See the code for enum get_oid_result for a description of
|
||||||
* the return values.
|
* the return values.
|
||||||
*/
|
*/
|
||||||
enum get_oid_result get_tree_entry_follow_symlinks(struct object_id *tree_oid, const char *name, struct object_id *result, struct strbuf *result_path, unsigned *mode)
|
enum get_oid_result get_tree_entry_follow_symlinks(struct object_id *tree_oid, const char *name, struct object_id *result, struct strbuf *result_path, unsigned short *mode)
|
||||||
{
|
{
|
||||||
int retval = MISSING_OBJECT;
|
int retval = MISSING_OBJECT;
|
||||||
struct dir_state *parents = NULL;
|
struct dir_state *parents = NULL;
|
||||||
|
|
|
@ -16,7 +16,7 @@ struct tree_desc {
|
||||||
unsigned int size;
|
unsigned int size;
|
||||||
};
|
};
|
||||||
|
|
||||||
static inline const struct object_id *tree_entry_extract(struct tree_desc *desc, const char **pathp, unsigned int *modep)
|
static inline const struct object_id *tree_entry_extract(struct tree_desc *desc, const char **pathp, unsigned short *modep)
|
||||||
{
|
{
|
||||||
*pathp = desc->entry.path;
|
*pathp = desc->entry.path;
|
||||||
*modep = desc->entry.mode;
|
*modep = desc->entry.mode;
|
||||||
|
@ -51,7 +51,7 @@ struct traverse_info;
|
||||||
typedef int (*traverse_callback_t)(int n, unsigned long mask, unsigned long dirmask, struct name_entry *entry, struct traverse_info *);
|
typedef int (*traverse_callback_t)(int n, unsigned long mask, unsigned long dirmask, struct name_entry *entry, struct traverse_info *);
|
||||||
int traverse_trees(struct index_state *istate, int n, struct tree_desc *t, struct traverse_info *info);
|
int traverse_trees(struct index_state *istate, int n, struct tree_desc *t, struct traverse_info *info);
|
||||||
|
|
||||||
enum get_oid_result get_tree_entry_follow_symlinks(struct object_id *tree_oid, const char *name, struct object_id *result, struct strbuf *result_path, unsigned *mode);
|
enum get_oid_result get_tree_entry_follow_symlinks(struct object_id *tree_oid, const char *name, struct object_id *result, struct strbuf *result_path, unsigned short *mode);
|
||||||
|
|
||||||
struct traverse_info {
|
struct traverse_info {
|
||||||
const char *traverse_path;
|
const char *traverse_path;
|
||||||
|
@ -66,7 +66,7 @@ struct traverse_info {
|
||||||
int show_all_errors;
|
int show_all_errors;
|
||||||
};
|
};
|
||||||
|
|
||||||
int get_tree_entry(const struct object_id *, const char *, struct object_id *, unsigned *);
|
int get_tree_entry(const struct object_id *, const char *, struct object_id *, unsigned short *);
|
||||||
extern char *make_traverse_path(char *path, const struct traverse_info *info, const struct name_entry *n);
|
extern char *make_traverse_path(char *path, const struct traverse_info *info, const struct name_entry *n);
|
||||||
extern void setup_traverse_info(struct traverse_info *info, const char *base);
|
extern void setup_traverse_info(struct traverse_info *info, const char *base);
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче