mirror of
https://git.proxmox.com/git/libgit2
synced 2025-05-21 12:24:58 +00:00
Merge pull request #1516 from ethomson/win32_alternate_nostat
don't use uninitialized struct stat in win32
This commit is contained in:
commit
bb503dbd03
16
src/odb.c
16
src/odb.c
@ -445,31 +445,39 @@ static int add_default_backends(
|
|||||||
{
|
{
|
||||||
size_t i;
|
size_t i;
|
||||||
struct stat st;
|
struct stat st;
|
||||||
|
ino_t inode;
|
||||||
git_odb_backend *loose, *packed;
|
git_odb_backend *loose, *packed;
|
||||||
|
|
||||||
/* TODO: inodes are not really relevant on Win32, so we need to find
|
/* TODO: inodes are not really relevant on Win32, so we need to find
|
||||||
* a cross-platform workaround for this */
|
* a cross-platform workaround for this */
|
||||||
#ifndef GIT_WIN32
|
#ifdef GIT_WIN32
|
||||||
|
GIT_UNUSED(i);
|
||||||
|
GIT_UNUSED(st);
|
||||||
|
|
||||||
|
inode = 0;
|
||||||
|
#else
|
||||||
if (p_stat(objects_dir, &st) < 0) {
|
if (p_stat(objects_dir, &st) < 0) {
|
||||||
giterr_set(GITERR_ODB, "Failed to load object database in '%s'", objects_dir);
|
giterr_set(GITERR_ODB, "Failed to load object database in '%s'", objects_dir);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inode = st.st_ino;
|
||||||
|
|
||||||
for (i = 0; i < db->backends.length; ++i) {
|
for (i = 0; i < db->backends.length; ++i) {
|
||||||
backend_internal *backend = git_vector_get(&db->backends, i);
|
backend_internal *backend = git_vector_get(&db->backends, i);
|
||||||
if (backend->disk_inode == st.st_ino)
|
if (backend->disk_inode == inode)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* add the loose object backend */
|
/* add the loose object backend */
|
||||||
if (git_odb_backend_loose(&loose, objects_dir, -1, 0) < 0 ||
|
if (git_odb_backend_loose(&loose, objects_dir, -1, 0) < 0 ||
|
||||||
add_backend_internal(db, loose, GIT_LOOSE_PRIORITY, as_alternates, st.st_ino) < 0)
|
add_backend_internal(db, loose, GIT_LOOSE_PRIORITY, as_alternates, inode) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
/* add the packed file backend */
|
/* add the packed file backend */
|
||||||
if (git_odb_backend_pack(&packed, objects_dir) < 0 ||
|
if (git_odb_backend_pack(&packed, objects_dir) < 0 ||
|
||||||
add_backend_internal(db, packed, GIT_PACKED_PRIORITY, as_alternates, st.st_ino) < 0)
|
add_backend_internal(db, packed, GIT_PACKED_PRIORITY, as_alternates, inode) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
return load_alternates(db, objects_dir, alternate_depth);
|
return load_alternates(db, objects_dir, alternate_depth);
|
||||||
|
Loading…
Reference in New Issue
Block a user