mirror of
https://git.proxmox.com/git/libgit2
synced 2025-05-21 18:30:56 +00:00
object: Export git_object_dup
This commit is contained in:
parent
90431f1b80
commit
575a54db85
@ -188,6 +188,15 @@ GIT_EXTERN(int) git_object_peel(
|
||||
const git_object *object,
|
||||
git_otype target_type);
|
||||
|
||||
/**
|
||||
* Create an in-memory copy of a Git object. The copy must be
|
||||
* explicitly free'd or it will leak.
|
||||
*
|
||||
* @param dest Pointer to store the copy of the object
|
||||
* @param source Original object to copy
|
||||
*/
|
||||
GIT_EXTERN(int) git_object_dup(git_object **dest, git_object *source);
|
||||
|
||||
/** @} */
|
||||
GIT_END_DECL
|
||||
|
||||
|
@ -578,7 +578,7 @@ int git_iterator_for_tree(
|
||||
if (tree == NULL)
|
||||
return git_iterator_for_nothing(iter, flags, start, end);
|
||||
|
||||
if ((error = git_tree__dup(&tree, tree)) < 0)
|
||||
if ((error = git_object_dup((git_object **)&tree, (git_object *)tree)) < 0)
|
||||
return error;
|
||||
|
||||
ITERATOR_BASE_INIT(ti, tree, TREE, git_tree_owner(tree));
|
||||
|
@ -360,7 +360,7 @@ int git_object_peel(
|
||||
assert(object && peeled);
|
||||
|
||||
if (git_object_type(object) == target_type)
|
||||
return git_object__dup(peeled, (git_object *)object);
|
||||
return git_object_dup(peeled, (git_object *)object);
|
||||
|
||||
source = (git_object *)object;
|
||||
|
||||
@ -396,3 +396,9 @@ int git_object_peel(
|
||||
return error;
|
||||
}
|
||||
|
||||
int git_object_dup(git_object **dest, git_object *source)
|
||||
{
|
||||
git_cached_obj_incref(source);
|
||||
*dest = source;
|
||||
return 0;
|
||||
}
|
||||
|
@ -17,13 +17,6 @@ struct git_object {
|
||||
/* fully free the object; internal method, DO NOT EXPORT */
|
||||
void git_object__free(void *object);
|
||||
|
||||
GIT_INLINE(int) git_object__dup(git_object **dest, git_object *source)
|
||||
{
|
||||
git_cached_obj_incref(source);
|
||||
*dest = source;
|
||||
return 0;
|
||||
}
|
||||
|
||||
int git_object__from_odb_object(
|
||||
git_object **object_out,
|
||||
git_repository *repo,
|
||||
|
@ -934,7 +934,7 @@ int git_reference_peel(
|
||||
}
|
||||
|
||||
if (target_type == GIT_OBJ_ANY && git_object_type(target) != GIT_OBJ_TAG)
|
||||
error = git_object__dup(peeled, target);
|
||||
error = git_object_dup(peeled, target);
|
||||
else
|
||||
error = git_object_peel(peeled, target, target_type);
|
||||
|
||||
|
@ -432,7 +432,7 @@ static int dereference_to_non_tag(git_object **out, git_object *obj)
|
||||
if (git_object_type(obj) == GIT_OBJ_TAG)
|
||||
return git_tag_peel(out, (git_tag *)obj);
|
||||
|
||||
return git_object__dup(out, obj);
|
||||
return git_object_dup(out, obj);
|
||||
}
|
||||
|
||||
static int handle_caret_parent_syntax(git_object **out, git_object *obj, int n)
|
||||
|
@ -30,11 +30,6 @@ struct git_treebuilder {
|
||||
size_t entrycount; /* vector may contain "removed" entries */
|
||||
};
|
||||
|
||||
GIT_INLINE(int) git_tree__dup(git_tree **dest, git_tree *source)
|
||||
{
|
||||
return git_object__dup((git_object **)dest, (git_object *)source);
|
||||
}
|
||||
|
||||
GIT_INLINE(bool) git_tree_entry__is_tree(const struct git_tree_entry *e)
|
||||
{
|
||||
return (S_ISDIR(e->attr) && !S_ISGITLINK(e->attr));
|
||||
|
Loading…
Reference in New Issue
Block a user