Commit 3b4ba2787049c561cd7a9e3fea8fc16e473a0b32

Jacques Germishuys 2014-04-03T15:50:21

Const correctness!

diff --git a/include/git2/blob.h b/include/git2/blob.h
index ac4d843..1b65833 100644
--- a/include/git2/blob.h
+++ b/include/git2/blob.h
@@ -216,7 +216,7 @@ GIT_EXTERN(int) git_blob_create_frombuffer(
  * @return 1 if the content of the blob is detected
  * as binary; 0 otherwise.
  */
-GIT_EXTERN(int) git_blob_is_binary(git_blob *blob);
+GIT_EXTERN(int) git_blob_is_binary(const git_blob *blob);
 
 /** @} */
 GIT_END_DECL
diff --git a/include/git2/branch.h b/include/git2/branch.h
index d276201..ad2a70b 100644
--- a/include/git2/branch.h
+++ b/include/git2/branch.h
@@ -179,8 +179,9 @@ GIT_EXTERN(int) git_branch_lookup(
  * @return 0 on success; otherwise an error code (e.g., if the
  *  ref is no local or remote branch).
  */
-GIT_EXTERN(int) git_branch_name(const char **out,
-		git_reference *ref);
+GIT_EXTERN(int) git_branch_name(
+		const char **out,
+		const git_reference *ref);
 
 /**
  * Return the reference supporting the remote tracking branch,
@@ -196,7 +197,7 @@ GIT_EXTERN(int) git_branch_name(const char **out,
  */
 GIT_EXTERN(int) git_branch_upstream(
 	git_reference **out,
-	git_reference *branch);
+	const git_reference *branch);
 
 /**
  * Set the upstream configuration for a given local branch
diff --git a/include/git2/index.h b/include/git2/index.h
index 9a7ad28..dd6a28e 100644
--- a/include/git2/index.h
+++ b/include/git2/index.h
@@ -255,7 +255,7 @@ GIT_EXTERN(int) git_index_write(git_index *index);
  * @param index an existing index object
  * @return path to index file or NULL for in-memory index
  */
-GIT_EXTERN(const char *) git_index_path(git_index *index);
+GIT_EXTERN(const char *) git_index_path(const git_index *index);
 
 /**
  * Read a tree into the index file with stats
diff --git a/include/git2/merge.h b/include/git2/merge.h
index 769df5a..6d97e81 100644
--- a/include/git2/merge.h
+++ b/include/git2/merge.h
@@ -341,7 +341,7 @@ GIT_EXTERN(int) git_merge_base_octopus(
 GIT_EXTERN(int) git_merge_head_from_ref(
 	git_merge_head **out,
 	git_repository *repo,
-	git_reference *ref);
+	const git_reference *ref);
 
 /**
  * Creates a `git_merge_head` from the given fetch head data.  The resulting
diff --git a/include/git2/push.h b/include/git2/push.h
index 899d21e..7a8bec1 100644
--- a/include/git2/push.h
+++ b/include/git2/push.h
@@ -148,7 +148,7 @@ GIT_EXTERN(int) git_push_finish(git_push *push);
  *
  * @return true if remote side successfully unpacked, false otherwise
  */
-GIT_EXTERN(int) git_push_unpack_ok(git_push *push);
+GIT_EXTERN(int) git_push_unpack_ok(const git_push *push);
 
 /**
  * Invoke callback `cb' on each status entry
diff --git a/include/git2/refs.h b/include/git2/refs.h
index 1bbb4ca..6a1db65 100644
--- a/include/git2/refs.h
+++ b/include/git2/refs.h
@@ -487,7 +487,9 @@ GIT_EXTERN(void) git_reference_free(git_reference *ref);
  * @param ref2 The second git_reference
  * @return 0 if the same, else a stable but meaningless ordering.
  */
-GIT_EXTERN(int) git_reference_cmp(git_reference *ref1, git_reference *ref2);
+GIT_EXTERN(int) git_reference_cmp(
+	const git_reference *ref1,
+	const git_reference *ref2);
 
 /**
  * Create an iterator for the repo's references
@@ -596,7 +598,7 @@ GIT_EXTERN(int) git_reference_is_branch(const git_reference *ref);
  * @return 1 when the reference lives in the refs/remotes
  * namespace; 0 otherwise.
  */
-GIT_EXTERN(int) git_reference_is_remote(git_reference *ref);
+GIT_EXTERN(int) git_reference_is_remote(const git_reference *ref);
 
 /**
  * Check if a reference is a tag
@@ -606,7 +608,7 @@ GIT_EXTERN(int) git_reference_is_remote(git_reference *ref);
  * @return 1 when the reference lives in the refs/tags
  * namespace; 0 otherwise.
  */
-GIT_EXTERN(int) git_reference_is_tag(git_reference *ref);
+GIT_EXTERN(int) git_reference_is_tag(const git_reference *ref);
 
 /**
  * Check if a reference is a note
@@ -616,7 +618,7 @@ GIT_EXTERN(int) git_reference_is_tag(git_reference *ref);
  * @return 1 when the reference lives in the refs/notes
  * namespace; 0 otherwise.
  */
-GIT_EXTERN(int) git_reference_is_note(git_reference *ref);
+GIT_EXTERN(int) git_reference_is_note(const git_reference *ref);
 
 typedef enum {
 	GIT_REF_FORMAT_NORMAL = 0u,
@@ -720,7 +722,7 @@ GIT_EXTERN(int) git_reference_is_valid_name(const char *refname);
  * @param ref a reference
  * @return the human-readable version of the name
  */
-GIT_EXTERN(const char *) git_reference_shorthand(git_reference *ref);
+GIT_EXTERN(const char *) git_reference_shorthand(const git_reference *ref);
 
 
 /** @} */
diff --git a/src/blob.c b/src/blob.c
index faf8a4a..0aa2516 100644
--- a/src/blob.c
+++ b/src/blob.c
@@ -326,7 +326,7 @@ cleanup:
 	return error;
 }
 
-int git_blob_is_binary(git_blob *blob)
+int git_blob_is_binary(const git_blob *blob)
 {
 	git_buf content;
 
diff --git a/src/branch.c b/src/branch.c
index df665a4..63c6ec1 100644
--- a/src/branch.c
+++ b/src/branch.c
@@ -281,7 +281,9 @@ int git_branch_lookup(
 	return retrieve_branch_reference(ref_out, repo, branch_name, branch_type == GIT_BRANCH_REMOTE);
 }
 
-int git_branch_name(const char **out, git_reference *ref)
+int git_branch_name(
+	const char **out,
+	const git_reference *ref)
 {
 	const char *branch_name;
 
@@ -450,8 +452,8 @@ cleanup:
 }
 
 int git_branch_upstream(
-		git_reference **tracking_out,
-		git_reference *branch)
+	git_reference **tracking_out,
+	const git_reference *branch)
 {
 	int error;
 	git_buf tracking_name = GIT_BUF_INIT;
diff --git a/src/index.c b/src/index.c
index ea0815e..3fcd211 100644
--- a/src/index.c
+++ b/src/index.c
@@ -553,7 +553,7 @@ int git_index_write(git_index *index)
 	return 0;
 }
 
-const char * git_index_path(git_index *index)
+const char * git_index_path(const git_index *index)
 {
 	assert(index);
 	return index->index_file_path;
diff --git a/src/merge.c b/src/merge.c
index f9ed7b0..dd6a39f 100644
--- a/src/merge.c
+++ b/src/merge.c
@@ -2695,7 +2695,7 @@ static int merge_head_init(
 int git_merge_head_from_ref(
 	git_merge_head **out,
 	git_repository *repo,
-	git_reference *ref)
+	const git_reference *ref)
 {
 	git_reference *resolved;
 	int error = 0;
diff --git a/src/push.c b/src/push.c
index 5213556..5c8de33 100644
--- a/src/push.c
+++ b/src/push.c
@@ -651,7 +651,7 @@ int git_push_finish(git_push *push)
 	return 0;
 }
 
-int git_push_unpack_ok(git_push *push)
+int git_push_unpack_ok(const git_push *push)
 {
 	return push->unpack_ok;
 }
diff --git a/src/refs.c b/src/refs.c
index 8b6e09a..9428f61 100644
--- a/src/refs.c
+++ b/src/refs.c
@@ -1031,7 +1031,9 @@ int git_reference__normalize_name_lax(
 }
 #define GIT_REF_TYPEMASK (GIT_REF_OID | GIT_REF_SYMBOLIC)
 
-int git_reference_cmp(git_reference *ref1, git_reference *ref2)
+int git_reference_cmp(
+	const git_reference *ref1,
+	const git_reference *ref2)
 {
 	git_ref_t type1, type2;
 	assert(ref1 && ref2);
@@ -1148,7 +1150,7 @@ int git_reference__is_remote(const char *ref_name)
 	return git__prefixcmp(ref_name, GIT_REFS_REMOTES_DIR) == 0;
 }
 
-int git_reference_is_remote(git_reference *ref)
+int git_reference_is_remote(const git_reference *ref)
 {
 	assert(ref);
 	return git_reference__is_remote(ref->name);
@@ -1159,7 +1161,7 @@ int git_reference__is_tag(const char *ref_name)
 	return git__prefixcmp(ref_name, GIT_REFS_TAGS_DIR) == 0;
 }
 
-int git_reference_is_tag(git_reference *ref)
+int git_reference_is_tag(const git_reference *ref)
 {
 	assert(ref);
 	return git_reference__is_tag(ref->name);
@@ -1170,7 +1172,7 @@ int git_reference__is_note(const char *ref_name)
 	return git__prefixcmp(ref_name, GIT_REFS_NOTES_DIR) == 0;
 }
 
-int git_reference_is_note(git_reference *ref)
+int git_reference_is_note(const git_reference *ref)
 {
 	assert(ref);
 	return git_reference__is_note(ref->name);
@@ -1244,7 +1246,7 @@ int git_reference_is_valid_name(const char *refname)
 	return git_reference__is_valid_name(refname, GIT_REF_FORMAT_ALLOW_ONELEVEL);
 }
 
-const char *git_reference_shorthand(git_reference *ref)
+const char *git_reference_shorthand(const git_reference *ref)
 {
 	const char *name = ref->name;