Re: [PATCH 3/3] Remove unsupported C99 style struct initializers in git-archive.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Junio C Hamano <junkio@xxxxxxx> wrote:
> "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.

Right; if it was larger I would have been in trouble.  :-)

> 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?

No, they are different structs...

Which I did to reduce the size of the initializer (see above)
so that it was a no brainer for you to swallow.  :-)

-- 
Shawn.
-
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

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]