summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorEdward Thomson <ethomson@github.com>2017-01-21 22:51:50 +0000
committerGitHub <noreply@github.com>2017-01-21 22:51:50 +0000
commit44e8af8f290d91c32fe3814658f2b4cabe9447fc (patch)
treefd84221392426283f18078d805ecaf64347b44ff /include
parent3b4eb107c21eb855dd651bc2e5904c0b29ece9b7 (diff)
parent87aaefe20b2e2fad8f0b8b236d1c23ce9ec5340f (diff)
downloadlibgit2-44e8af8f290d91c32fe3814658f2b4cabe9447fc.tar.gz
Merge pull request #3892 from mitesch/shared_buffer
Use a shared buffer in calls of git_treebuilder_write to avoid heap contention
Diffstat (limited to 'include')
-rw-r--r--include/git2/tree.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/include/git2/tree.h b/include/git2/tree.h
index 2e4735c4b..a38215f9f 100644
--- a/include/git2/tree.h
+++ b/include/git2/tree.h
@@ -375,6 +375,19 @@ GIT_EXTERN(void) git_treebuilder_filter(
GIT_EXTERN(int) git_treebuilder_write(
git_oid *id, git_treebuilder *bld);
+/**
+ * Write the contents of the tree builder as a tree object
+ * using a shared git_buf.
+ *
+ * @see git_treebuilder_write
+ *
+ * @param id Pointer to store the OID of the newly written tree
+ * @param bld Tree builder to write
+ * @param tree Shared buffer for writing the tree. Will be grown as necessary.
+ * @return 0 or an error code
+ */
+GIT_EXTERN(int) git_treebuilder_write_with_buffer(
+ git_oid *oid, git_treebuilder *bld, git_buf *tree);
/** Callback for the tree traversal method */
typedef int (*git_treewalk_cb)(