--- refs.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/refs.c b/refs.c index 6695140cfe..8912798c1d 100644 --- a/refs.c +++ b/refs.c @@ -1571,25 +1571,23 @@ struct ref_store *get_submodule_ref_store(const char *submodule) refs = lookup_submodule_ref_store(submodule); if (refs) - return refs; + goto done; strbuf_addstr(&submodule_sb, submodule); ret = is_nonbare_repository_dir(&submodule_sb); - strbuf_release(&submodule_sb); if (!ret) - return NULL; + goto done; ret = submodule_to_gitdir(&submodule_sb, submodule); - if (ret) { - strbuf_release(&submodule_sb); - return NULL; - } + if (ret) + goto done; /* pretend that add_submodule_odb() has been called */ refs = ref_store_init(submodule_sb.buf, REF_STORE_READ | REF_STORE_ODB); register_submodule_ref_store(refs, submodule); +done: strbuf_release(&submodule_sb); return refs; } -- 2.11.0.157.gd943d85