On 7/23/2020 3:57 PM, Junio C Hamano wrote: > "Derrick Stolee via GitGitGadget" <gitgitgadget@xxxxxxxxx> writes: > >> +static void initialize_tasks(void) >> +{ >> + int i; >> + num_tasks = 0; >> + >> + for (i = 0; i < MAX_NUM_TASKS; i++) >> + tasks[i] = xcalloc(1, sizeof(struct maintenance_task)); >> + >> + tasks[num_tasks]->name = "gc"; >> + tasks[num_tasks]->fn = maintenance_task_gc; >> + tasks[num_tasks]->enabled = 1; >> + num_tasks++; > > Are we going to have 47 different tasks initialized by code like > this in the future? I would have expected that you'd have a table > of tasks that serves as the blueprint copy and copy it to the table > to be used if there is some need to mutate the table-to-be-used. Making it a table will likely make it easier to read. I hadn't thought of it. At the start, I thought that the diff would look awful as we add members to the struct. However, the members that are not specified are set to zero, so I should be able to craft this into something not too terrible. Thanks, -Stolee