"Shawn O. Pearce" <spearce@xxxxxxxxxxx> writes: > +static struct archiver_desc > +{ > + const char *name; > + write_archive_fn_t write_archive; > + parse_extra_args_fn_t parse_extra; > +} archivers[] = { > + { "tar", write_tar_archive, NULL }, > + { "zip", write_zip_archive, parse_extra_zip_args }, > }; If this were a struct with bazillions of fields I might have had trouble swallowing the change, but this is so small that it is no brainer. I think this actually is an improvement. > static int run_remote_archiver(const char *remote, int argc, > @@ -88,7 +86,10 @@ static int init_archiver(const char *nam > > for (i = 0; i < ARRAY_SIZE(archivers); i++) { > if (!strcmp(name, archivers[i].name)) { > - memcpy(ar, &archivers[i], sizeof(struct archiver)); > + memset(ar, 0, sizeof(*ar)); > + ar->name = archivers[i].name; > + ar->write_archive = archivers[i].write_archive; > + ar->parse_extra = archivers[i].parse_extra; But is this change really needed? Shouldn't a structure assignment just work? - To unsubscribe from this list: 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