index: introduce index_entry_free() Signed-off-by: Kirill A. Shutemov <kirill@shutemov.name>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
diff --git a/src/index.c b/src/index.c
index 2eb0809..34ebc32 100644
--- a/src/index.c
+++ b/src/index.c
@@ -349,6 +349,14 @@ static git_index_entry *index_entry_dup(const git_index_entry *source_entry)
return entry;
}
+static void index_entry_free(git_index_entry *entry)
+{
+ if (!entry)
+ return;
+ free(entry->path);
+ free(entry);
+}
+
static int index_insert(git_index *index, const git_index_entry *source_entry, int replace)
{
git_index_entry *entry;
@@ -402,15 +410,13 @@ static int index_insert(git_index *index, const git_index_entry *source_entry, i
/* exists, replace it */
entry_array = (git_index_entry **) index->entries.contents;
- free(entry_array[position]->path);
- free(entry_array[position]);
+ index_entry_free(entry_array[position]);
entry_array[position] = entry;
return GIT_SUCCESS;
cleanup_oom:
- free(entry->path);
- free(entry);
+ index_entry_free(entry);
return GIT_ENOMEM;;
}