mirror of
https://git.proxmox.com/git/libgit2
synced 2025-05-28 10:28:56 +00:00
Implement git_odb_object_dup
This commit is contained in:
parent
86774742a9
commit
98fec8a937
@ -357,6 +357,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
|
||||
*
|
||||
|
@ -124,6 +124,13 @@ git_otype git_odb_object_type(git_odb_object *object)
|
||||
return object->cached.type;
|
||||
}
|
||||
|
||||
int git_odb_object_dup(git_odb_object **dest, git_odb_object *source)
|
||||
{
|
||||
git_cached_obj_incref(source);
|
||||
*dest = source;
|
||||
return 0;
|
||||
}
|
||||
|
||||
void git_odb_object_free(git_odb_object *object)
|
||||
{
|
||||
if (object == NULL)
|
||||
|
Loading…
Reference in New Issue
Block a user