projects
/
git.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
diff-tree: fix "whole sub-tree disappeared or appeared" case
[git.git]
/
update-cache.c
diff --git
a/update-cache.c
b/update-cache.c
index
2f5d620
..
a6f9d6c
100644
(file)
--- a/
update-cache.c
+++ b/
update-cache.c
@@
-73,7
+73,7
@@
static int add_file_to_cache(char *path)
if (allow_remove)
return remove_file_from_cache(path);
}
if (allow_remove)
return remove_file_from_cache(path);
}
- return
-1
;
+ return
error("open(\"%s\"): %s", path, strerror(errno))
;
}
namelen = strlen(path);
size = cache_entry_size(namelen);
}
namelen = strlen(path);
size = cache_entry_size(namelen);
@@
-131,7
+131,7
@@
static int compare_data(struct cache_entry *ce, unsigned long expected_size)
if (fd >= 0) {
void *buffer;
unsigned long size;
if (fd >= 0) {
void *buffer;
unsigned long size;
- char type[
1
0];
+ char type[
2
0];
buffer = read_sha1_file(ce->sha1, type, &size);
if (buffer) {
buffer = read_sha1_file(ce->sha1, type, &size);
if (buffer) {
@@
-191,7
+191,7
@@
static struct cache_entry *refresh_entry(struct cache_entry *ce)
if (lstat(ce->name, &st) < 0)
return ERR_PTR(-errno);
if (lstat(ce->name, &st) < 0)
return ERR_PTR(-errno);
- changed = c
ach
e_match_stat(ce, &st);
+ changed = ce_match_stat(ce, &st);
if (!changed)
return ce;
if (!changed)
return ce;
@@
-249,6
+249,9
@@
static int refresh_cache(void)
continue;
}
active_cache_changed = 1;
continue;
}
active_cache_changed = 1;
+ /* You can NOT just free active_cache[i] here, since it
+ * might not be necessarily malloc()ed but can also come
+ * from mmap(). */
active_cache[i] = new;
}
return has_errors;
active_cache[i] = new;
}
return has_errors;