summaryrefslogtreecommitdiff
path: root/src/odb_pack.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/odb_pack.c')
-rw-r--r--src/odb_pack.c32
1 files changed, 10 insertions, 22 deletions
diff --git a/src/odb_pack.c b/src/odb_pack.c
index 2c0319fb6..903b00d26 100644
--- a/src/odb_pack.c
+++ b/src/odb_pack.c
@@ -190,15 +190,9 @@ static int packfile_sort__cb(const void *a_, const void *b_)
}
-struct packfile_load_data {
- struct pack_backend *backend;
- git_error_state error;
-};
-
-static int packfile_load__cb(void *_data, git_buf *path)
+static int packfile_load__cb(void *data, git_buf *path)
{
- struct packfile_load_data *data = _data;
- struct pack_backend *backend = data->backend;
+ struct pack_backend *backend = data;
struct git_pack_file *pack;
const char *path_str = git_buf_cstr(path);
size_t i, cmp_len = git_buf_len(path);
@@ -227,7 +221,7 @@ static int packfile_load__cb(void *_data, git_buf *path)
if (!error)
error = git_vector_insert(&backend->packs, pack);
- return giterr_capture(&data->error, error);
+ return error;
}
@@ -328,32 +322,26 @@ static int pack_entry_find_prefix(
* Implement the git_odb_backend API calls
*
***********************************************************/
-static int pack_backend__refresh(git_odb_backend *backend)
+static int pack_backend__refresh(git_odb_backend *backend_)
{
- struct packfile_load_data data;
int error;
struct stat st;
git_buf path = GIT_BUF_INIT;
+ struct pack_backend *backend = (struct pack_backend *)backend_;
- memset(&data, 0, sizeof(data));
- data.backend = (struct pack_backend *)backend;
-
- if (data.backend->pack_folder == NULL)
+ if (backend->pack_folder == NULL)
return 0;
- if (p_stat(data.backend->pack_folder, &st) < 0 || !S_ISDIR(st.st_mode))
+ if (p_stat(backend->pack_folder, &st) < 0 || !S_ISDIR(st.st_mode))
return git_odb__error_notfound("failed to refresh packfiles", NULL);
- git_buf_sets(&path, data.backend->pack_folder);
+ git_buf_sets(&path, backend->pack_folder);
/* reload all packs */
- error = git_path_direach(&path, 0, packfile_load__cb, &data);
-
- if (error == GIT_EUSER)
- error = giterr_restore(&data.error);
+ error = git_path_direach(&path, 0, packfile_load__cb, backend);
git_buf_free(&path);
- git_vector_sort(&data.backend->packs);
+ git_vector_sort(&backend->packs);
return error;
}