summaryrefslogtreecommitdiff
path: root/include/git2/odb.h
diff options
context:
space:
mode:
authorBen Straub <bs@github.com>2013-10-28 11:04:58 -0700
committerBen Straub <bs@github.com>2013-10-28 11:04:58 -0700
commit42c8f8f807fe986534e0cbabbfabc32cb4eb9077 (patch)
treefa76cb66e6d49855be344026b1cbe31d03962916 /include/git2/odb.h
parenta7d28f40a2a01382b76c55ca0a0672c177adaf69 (diff)
parent5c50f22a93c78190fb7d81802199ff9defc8cf55 (diff)
downloadlibgit2-42c8f8f807fe986534e0cbabbfabc32cb4eb9077.tar.gz
Merge remote-tracking branch 'libgit2/development' into blame
Diffstat (limited to 'include/git2/odb.h')
-rw-r--r--include/git2/odb.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/include/git2/odb.h b/include/git2/odb.h
index 3bd18e782..ad56384f0 100644
--- a/include/git2/odb.h
+++ b/include/git2/odb.h
@@ -358,6 +358,20 @@ GIT_EXTERN(int) git_odb_hash(git_oid *out, const void *data, size_t len, git_oty
GIT_EXTERN(int) git_odb_hashfile(git_oid *out, const char *path, git_otype type);
/**
+ * Create a copy of an odb_object
+ *
+ * The returned copy must be manually freed with `git_odb_object_free`.
+ * Note that because of an implementation detail, the returned copy will be
+ * the same pointer as `source`: the object is internally refcounted, so the
+ * copy still needs to be freed twice.
+ *
+ * @param dest pointer where to store the copy
+ * @param source object to copy
+ * @return 0 or an error code
+ */
+GIT_EXTERN(int) git_odb_object_dup(git_odb_object **dest, git_odb_object *source);
+
+/**
* Close an ODB object
*
* This method must always be called once a `git_odb_object` is no