projects
/
git.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Optionally support old diffs
[git.git]
/
fsck-objects.c
diff --git
a/fsck-objects.c
b/fsck-objects.c
index
90e638e
..
6439d55
100644
(file)
--- a/
fsck-objects.c
+++ b/
fsck-objects.c
@@
-20,6
+20,13
@@
static int check_strict = 0;
static int keep_cache_objects = 0;
static unsigned char head_sha1[20];
static int keep_cache_objects = 0;
static unsigned char head_sha1[20];
+#if NO_D_INO_IN_DIRENT
+#define SORT_DIRENT 0
+#define DIRENT_SORT_HINT(de) 0
+#else
+#define SORT_DIRENT 1
+#define DIRENT_SORT_HINT(de) ((de)->d_ino)
+#endif
static void objreport(struct object *obj, const char *severity,
const char *err, va_list params)
static void objreport(struct object *obj, const char *severity,
const char *err, va_list params)
@@
-54,9
+61,12
@@
static void check_connectivity(void)
int i;
/* Look up all the requirements, warn about missing objects.. */
int i;
/* Look up all the requirements, warn about missing objects.. */
- for (i = 0; i <
nr_obj
s; i++) {
+ for (i = 0; i <
obj_alloc
s; i++) {
struct object *obj = objs[i];
struct object *obj = objs[i];
+ if (!obj)
+ continue;
+
if (!obj->parsed) {
if (!standalone && has_sha1_file(obj->sha1))
; /* it is in pack */
if (!obj->parsed) {
if (!standalone && has_sha1_file(obj->sha1))
; /* it is in pack */
@@
-307,7
+317,9
@@
static void fsck_sha1_list(void)
{
int i, nr = sha1_list.nr;
{
int i, nr = sha1_list.nr;
- qsort(sha1_list.entry, nr, sizeof(struct sha1_entry *), ino_compare);
+ if (SORT_DIRENT)
+ qsort(sha1_list.entry, nr,
+ sizeof(struct sha1_entry *), ino_compare);
for (i = 0; i < nr; i++) {
struct sha1_entry *entry = sha1_list.entry[i];
unsigned char *sha1 = entry->sha1;
for (i = 0; i < nr; i++) {
struct sha1_entry *entry = sha1_list.entry[i];
unsigned char *sha1 = entry->sha1;
@@
-361,7
+373,7
@@
static int fsck_dir(int i, char *path)
memcpy(name+2, de->d_name, len+1);
if (get_sha1_hex(name, sha1) < 0)
break;
memcpy(name+2, de->d_name, len+1);
if (get_sha1_hex(name, sha1) < 0)
break;
- add_sha1_list(sha1,
de->d_ino
);
+ add_sha1_list(sha1,
DIRENT_SORT_HINT(de)
);
continue;
}
fprintf(stderr, "bad sha1 file: %s/%s\n", path, de->d_name);
continue;
}
fprintf(stderr, "bad sha1 file: %s/%s\n", path, de->d_name);