summaryrefslogtreecommitdiff
path: root/src/submodule.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/submodule.c')
-rw-r--r--src/submodule.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/submodule.c b/src/submodule.c
index 54ffc6103..b07c9d917 100644
--- a/src/submodule.c
+++ b/src/submodule.c
@@ -1279,14 +1279,17 @@ static int submodule_load_from_config(
}
}
+ /* Found a alternate key for the submodule */
if (alternate) {
void *old_sm = NULL;
git_strmap_insert2(smcfg, alternate, sm, old_sm, error);
if (error < 0)
goto done;
- if (error >= 0)
- GIT_REFCOUNT_INC(sm); /* inserted under a new key */
+ if (error > 0)
+ error = 0;
+
+ GIT_REFCOUNT_INC(sm); /* increase refcount for new key */
/* if we replaced an old module under this key, release the old one */
if (old_sm && ((git_submodule *)old_sm) != sm) {