mirror of
https://git.proxmox.com/git/libgit2
synced 2025-05-30 11:06:20 +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);
|
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
|
* Close an ODB object
|
||||||
*
|
*
|
||||||
|
@ -124,6 +124,13 @@ git_otype git_odb_object_type(git_odb_object *object)
|
|||||||
return object->cached.type;
|
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)
|
void git_odb_object_free(git_odb_object *object)
|
||||||
{
|
{
|
||||||
if (object == NULL)
|
if (object == NULL)
|
||||||
|
Loading…
Reference in New Issue
Block a user