summaryrefslogtreecommitdiff
path: root/src/refdb_fs.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/refdb_fs.c')
-rw-r--r--src/refdb_fs.c25
1 files changed, 6 insertions, 19 deletions
diff --git a/src/refdb_fs.c b/src/refdb_fs.c
index 938e02a78..df7cb9d4d 100644
--- a/src/refdb_fs.c
+++ b/src/refdb_fs.c
@@ -264,14 +264,9 @@ done:
return error;
}
-struct packed_loadloose_data {
- refdb_fs_backend *backend;
- git_error_state error;
-};
-
-static int _dirent_loose_load(void *data_, git_buf *full_path)
+static int _dirent_loose_load(void *payload, git_buf *full_path)
{
- struct packed_loadloose_data *data = data_;
+ refdb_fs_backend *backend = payload;
const char *file_path;
if (git__suffixcmp(full_path->ptr, ".lock") == 0)
@@ -279,12 +274,11 @@ static int _dirent_loose_load(void *data_, git_buf *full_path)
if (git_path_isdir(full_path->ptr))
return git_path_direach(
- full_path, data->backend->direach_flags, _dirent_loose_load, data);
+ full_path, backend->direach_flags, _dirent_loose_load, backend);
- file_path = full_path->ptr + strlen(data->backend->path);
+ file_path = full_path->ptr + strlen(backend->path);
- return giterr_capture(
- &data->error, loose_lookup_to_packfile(data->backend, file_path));
+ return loose_lookup_to_packfile(backend, file_path);
}
/*
@@ -297,27 +291,20 @@ static int packed_loadloose(refdb_fs_backend *backend)
{
int error;
git_buf refs_path = GIT_BUF_INIT;
- struct packed_loadloose_data data;
if (git_buf_joinpath(&refs_path, backend->path, GIT_REFS_DIR) < 0)
return -1;
- memset(&data, 0, sizeof(data));
- data.backend = backend;
-
/*
* Load all the loose files from disk into the Packfile table.
* This will overwrite any old packed entries with their
* updated loose versions
*/
error = git_path_direach(
- &refs_path, backend->direach_flags, _dirent_loose_load, &data);
+ &refs_path, backend->direach_flags, _dirent_loose_load, backend);
git_buf_free(&refs_path);
- if (error == GIT_EUSER)
- error = giterr_restore(&data.error);
-
return error;
}