Johannes Schindelin <Johannes.Schindelin@xxxxxx> wrote: > +struct list { > + char **list; > + void **payload; > + unsigned nr, alloc; > +}; How about something like this instead to reduce mallocs to half and simplify the code? struct item { char *value; void *payload; }; struct list { struct item *items; unsigned int nr, alloc; }; (But I realize this isn't performance critical) > +static void append_to_list(struct list *list, char *value) Add void *payload parameter too, would simplify the code. > +static void free_list(struct list *list) > +{ > + int i; > + > + if (list->alloc == 0) > + return; Unnecessary if nr is 0 too. > + for (i = 0; i < list->nr; i++) { > + free(list->list[i]); > + if (list->payload[i]) > + free(list->payload[i]); free(NULL) is safe. > + } > + free(list->list); > + free(list->payload); > + list->nr = list->alloc = 0; > +} > + if (!strncmp(line, "branch ", 7)) { > + origin = strdup(line + 7); > + append_to_list(&(src_data->branch), origin); Parenthesis isn't needed. > + head->object.flags |= UNINTERESTING; > + prepare_revision_walk(rev); Spaces.. > + if (merge_summary) { > + struct commit *head; > + struct rev_info rev; > + > + head = lookup_commit(head_sha1); > +parse_object(head->object.sha1); > +head = head->parents->item; Indentation. -- http://onion.dynserv.net/~timo/ - : send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html