Commit 11aa20b0 by Dmitry Lobanov

submodule: git submodule dup object dup has been added.

parent d6f57b9c
...@@ -224,11 +224,13 @@ GIT_EXTERN(int) git_submodule_lookup( ...@@ -224,11 +224,13 @@ GIT_EXTERN(int) git_submodule_lookup(
const char *name); const char *name);
/** /**
* Dup (retain) a submodule * Create an in-memory copy of a submodule. The copy must be explicitly
* free'd or it will leak.
* *
* @param submodule Submodule object * @param out Pointer to store the copy of the submodule
* @param source Original tag to copy
*/ */
GIT_EXTERN(git_submodule *) git_submodule_dup(git_submodule *submodule); GIT_EXTERN(int) git_submodule_dup(git_submodule **out, git_submodule *source);
/** /**
* Release a submodule * Release a submodule
......
...@@ -1854,12 +1854,9 @@ static void submodule_release(git_submodule *sm) ...@@ -1854,12 +1854,9 @@ static void submodule_release(git_submodule *sm)
git__free(sm); git__free(sm);
} }
git_submodule* git_submodule_dup(git_submodule *sm) int git_submodule_dup(git_submodule **out, git_submodule *source)
{ {
if (!sm) return git_object_dup((git_object **)out, (git_object *)source);
return NULL;
GIT_REFCOUNT_INC(sm);
return sm;
} }
void git_submodule_free(git_submodule *sm) void git_submodule_free(git_submodule *sm)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment