From c3fb7d04edecb68f0307dfaa48a311f0f72db90e Mon Sep 17 00:00:00 2001 From: Russell Belfer Date: Tue, 27 Nov 2012 15:00:49 -0800 Subject: [PATCH] Make git_odb_foreach_cb take const param This makes the first OID param of the ODB callback a const pointer and also propogates that change all the way to the backends. --- include/git2/odb.h | 5 ----- include/git2/odb_backend.h | 11 +++++++++-- src/odb_loose.c | 4 ++-- src/odb_pack.c | 2 +- src/pack.c | 2 +- src/pack.h | 2 +- tests-clar/odb/foreach.c | 4 ++-- 7 files changed, 16 insertions(+), 14 deletions(-) diff --git a/include/git2/odb.h b/include/git2/odb.h index d41c2fb52..f2633d11c 100644 --- a/include/git2/odb.h +++ b/include/git2/odb.h @@ -22,11 +22,6 @@ */ GIT_BEGIN_DECL -/** - * Function type for callbacks from git_odb_foreach. - */ -typedef int (*git_odb_foreach_cb)(git_oid *id, void *payload); - /** * Create a new object database with no backends. * diff --git a/include/git2/odb_backend.h b/include/git2/odb_backend.h index 694803efd..04658f9b3 100644 --- a/include/git2/odb_backend.h +++ b/include/git2/odb_backend.h @@ -24,7 +24,14 @@ GIT_BEGIN_DECL struct git_odb_stream; struct git_odb_writepack; -/** An instance for a custom backend */ +/** + * Function type for callbacks from git_odb_foreach. + */ +typedef int (*git_odb_foreach_cb)(const git_oid *id, void *payload); + +/** + * An instance for a custom backend + */ struct git_odb_backend { git_odb *odb; @@ -79,7 +86,7 @@ struct git_odb_backend { int (* foreach)( struct git_odb_backend *, - int (*cb)(git_oid *oid, void *payload), + git_odb_foreach_cb cb, void *payload); int (* writepack)( diff --git a/src/odb_loose.c b/src/odb_loose.c index 41121ae10..e2f1aec32 100644 --- a/src/odb_loose.c +++ b/src/odb_loose.c @@ -678,7 +678,7 @@ static int loose_backend__exists(git_odb_backend *backend, const git_oid *oid) struct foreach_state { size_t dir_len; - int (*cb)(git_oid *oid, void *data); + git_odb_foreach_cb cb; void *data; int cb_error; }; @@ -734,7 +734,7 @@ static int foreach_cb(void *_state, git_buf *path) return git_path_direach(path, foreach_object_dir_cb, state); } -static int loose_backend__foreach(git_odb_backend *_backend, int (*cb)(git_oid *oid, void *data), void *data) +static int loose_backend__foreach(git_odb_backend *_backend, git_odb_foreach_cb cb, void *data) { char *objects_dir; int error; diff --git a/src/odb_pack.c b/src/odb_pack.c index 9f7a6ee1f..35bf1580d 100644 --- a/src/odb_pack.c +++ b/src/odb_pack.c @@ -458,7 +458,7 @@ static int pack_backend__exists(git_odb_backend *backend, const git_oid *oid) return pack_entry_find(&e, (struct pack_backend *)backend, oid) == 0; } -static int pack_backend__foreach(git_odb_backend *_backend, int (*cb)(git_oid *oid, void *data), void *data) +static int pack_backend__foreach(git_odb_backend *_backend, git_odb_foreach_cb cb, void *data) { int error; struct git_pack_file *p; diff --git a/src/pack.c b/src/pack.c index a2a2fbcd1..6cb46d37b 100644 --- a/src/pack.c +++ b/src/pack.c @@ -698,7 +698,7 @@ static int git__memcmp4(const void *a, const void *b) { int git_pack_foreach_entry( struct git_pack_file *p, - int (*cb)(git_oid *oid, void *data), + git_odb_foreach_cb cb, void *data) { const unsigned char *index = p->index_map.data, *current; diff --git a/src/pack.h b/src/pack.h index af87b7cd5..9fb26b6a9 100644 --- a/src/pack.h +++ b/src/pack.h @@ -105,7 +105,7 @@ int git_pack_entry_find( size_t len); int git_pack_foreach_entry( struct git_pack_file *p, - int (*cb)(git_oid *oid, void *data), + git_odb_foreach_cb cb, void *data); #endif diff --git a/tests-clar/odb/foreach.c b/tests-clar/odb/foreach.c index bf52cc1b5..37158d458 100644 --- a/tests-clar/odb/foreach.c +++ b/tests-clar/odb/foreach.c @@ -16,7 +16,7 @@ void test_odb_foreach__cleanup(void) _repo = NULL; } -static int foreach_cb(git_oid *oid, void *data) +static int foreach_cb(const git_oid *oid, void *data) { GIT_UNUSED(data); GIT_UNUSED(oid); @@ -59,7 +59,7 @@ void test_odb_foreach__one_pack(void) cl_assert(nobj == 1628); } -static int foreach_stop_cb(git_oid *oid, void *data) +static int foreach_stop_cb(const git_oid *oid, void *data) { GIT_UNUSED(data); GIT_UNUSED(oid);