[PATCH v2 04/12] refs.c: refactor get_submodule_ref_store(), share common free block
From: Nguyễn Thái Ngọc Duy <hidden>
Date: 2017-03-18 10:12:41
Subsystem:
the rest · Maintainer:
Linus Torvalds
From: Nguyễn Thái Ngọc Duy <hidden>
Date: 2017-03-18 10:12:41
Subsystem:
the rest · Maintainer:
Linus Torvalds
--- 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