summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorEdward Thomson <ethomson@github.com>2016-02-17 18:04:19 +0000
committerEdward Thomson <ethomson@github.com>2016-03-23 17:08:37 -0400
commitf0224772ee4300d55e11ab6f84cb3dd64b35ecfd (patch)
tree5f4857f12f0268973f8d4a758043413f4b164f0d /src
parent684b35c41b9166645e2edb9bc708aa7ddf9c1f24 (diff)
downloadlibgit2-f0224772ee4300d55e11ab6f84cb3dd64b35ecfd.tar.gz
git_object_dup: introduce typesafe versions
Diffstat (limited to 'src')
-rw-r--r--src/commit.c2
-rw-r--r--src/describe.c2
-rw-r--r--src/iterator.c4
-rw-r--r--src/object_api.c20
4 files changed, 23 insertions, 5 deletions
diff --git a/src/commit.c b/src/commit.c
index aaefacdab..5456751fe 100644
--- a/src/commit.c
+++ b/src/commit.c
@@ -615,7 +615,7 @@ int git_commit_nth_gen_ancestor(
assert(ancestor && commit);
- if (git_object_dup((git_object **) &current, (git_object *) commit) < 0)
+ if (git_commit_dup(&current, (git_commit *)commit) < 0)
return -1;
if (n == 0) {
diff --git a/src/describe.c b/src/describe.c
index 13ddad5be..fc48fbde4 100644
--- a/src/describe.c
+++ b/src/describe.c
@@ -197,7 +197,7 @@ static int commit_name_dup(struct commit_name **out, struct commit_name *in)
name->tag = NULL;
name->path = NULL;
- if (in->tag && git_object_dup((git_object **) &name->tag, (git_object *) in->tag) < 0)
+ if (in->tag && git_tag_dup(&name->tag, in->tag) < 0)
return -1;
name->path = git__strdup(in->path);
diff --git a/src/iterator.c b/src/iterator.c
index f7b87fc1e..14182a850 100644
--- a/src/iterator.c
+++ b/src/iterator.c
@@ -820,7 +820,7 @@ int git_iterator_for_tree(
if (tree == NULL)
return git_iterator_for_nothing(iter, options);
- if ((error = git_object_dup((git_object **)&tree, (git_object *)tree)) < 0)
+ if ((error = git_tree_dup(&tree, tree)) < 0)
return error;
ti = git__calloc(1, sizeof(tree_iterator));
@@ -1849,7 +1849,7 @@ int git_iterator_for_workdir_ext(
return error;
}
- if (tree && (error = git_object_dup((git_object **)&wi->tree, (git_object *)tree)) < 0)
+ if (tree && (error = git_tree_dup(&wi->tree, tree)) < 0)
return error;
wi->index = index;
diff --git a/src/object_api.c b/src/object_api.c
index 838bba323..e0d8760e7 100644
--- a/src/object_api.c
+++ b/src/object_api.c
@@ -15,7 +15,7 @@
#include "tag.h"
/**
- * Blob
+ * Commit
*/
int git_commit_lookup(git_commit **out, git_repository *repo, const git_oid *id)
{
@@ -42,6 +42,10 @@ git_repository *git_commit_owner(const git_commit *obj)
return git_object_owner((const git_object *)obj);
}
+int git_commit_dup(git_commit **out, git_commit *obj)
+{
+ return git_object_dup((git_object **)out, (git_object *)obj);
+}
/**
* Tree
@@ -71,6 +75,10 @@ git_repository *git_tree_owner(const git_tree *obj)
return git_object_owner((const git_object *)obj);
}
+int git_tree_dup(git_tree **out, git_tree *obj)
+{
+ return git_object_dup((git_object **)out, (git_object *)obj);
+}
/**
* Tag
@@ -100,6 +108,11 @@ git_repository *git_tag_owner(const git_tag *obj)
return git_object_owner((const git_object *)obj);
}
+int git_tag_dup(git_tag **out, git_tag *obj)
+{
+ return git_object_dup((git_object **)out, (git_object *)obj);
+}
+
/**
* Blob
*/
@@ -127,3 +140,8 @@ git_repository *git_blob_owner(const git_blob *obj)
{
return git_object_owner((const git_object *)obj);
}
+
+int git_blob_dup(git_blob **out, git_blob *obj)
+{
+ return git_object_dup((git_object **)out, (git_object *)obj);
+}