submodule: inline submodule_commits() into caller

When collecting the string_list of changed submodule names, the new
submodules commits are stored in the string_list_item.util as an
oid_array. A subsequent commit will replace the oid_array with a struct
that has more information.

Prepare for this change by inlining submodule_commits() (which inserts
into the string_list and initializes the string_list_item.util) into its
only caller so that the code is easier to refactor later.

Signed-off-by: Glen Choo <chooglen@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Glen Choo 2022-03-07 16:14:28 -08:00 committed by Junio C Hamano
parent 7c2f8cc58c
commit 1e5dd3a111
1 changed files with 6 additions and 16 deletions

View File

@ -782,19 +782,6 @@ const struct submodule *submodule_from_ce(const struct cache_entry *ce)
return submodule_from_path(the_repository, null_oid(), ce->name); return submodule_from_path(the_repository, null_oid(), ce->name);
} }


static struct oid_array *submodule_commits(struct string_list *submodules,
const char *name)
{
struct string_list_item *item;

item = string_list_insert(submodules, name);
if (item->util)
return (struct oid_array *) item->util;

/* NEEDSWORK: should we have oid_array_init()? */
item->util = xcalloc(1, sizeof(struct oid_array));
return (struct oid_array *) item->util;
}


struct collect_changed_submodules_cb_data { struct collect_changed_submodules_cb_data {
struct repository *repo; struct repository *repo;
@ -830,9 +817,9 @@ static void collect_changed_submodules_cb(struct diff_queue_struct *q,


for (i = 0; i < q->nr; i++) { for (i = 0; i < q->nr; i++) {
struct diff_filepair *p = q->queue[i]; struct diff_filepair *p = q->queue[i];
struct oid_array *commits;
const struct submodule *submodule; const struct submodule *submodule;
const char *name; const char *name;
struct string_list_item *item;


if (!S_ISGITLINK(p->two->mode)) if (!S_ISGITLINK(p->two->mode))
continue; continue;
@ -859,8 +846,11 @@ static void collect_changed_submodules_cb(struct diff_queue_struct *q,
if (!name) if (!name)
continue; continue;


commits = submodule_commits(changed, name); item = string_list_insert(changed, name);
oid_array_append(commits, &p->two->oid); if (!item->util)
/* NEEDSWORK: should we have oid_array_init()? */
item->util = xcalloc(1, sizeof(struct oid_array));
oid_array_append(item->util, &p->two->oid);
} }
} }