[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 24/29] libxl: Introduce FILLZERO
On Tue, 2015-02-10 at 20:10 +0000, Ian Jackson wrote: > FILLZERO is a macro for memset(&foo,0,sizeof(foo)). It eliminates the > possiblity to make the error memset(&foo,0,sizeof(&foo)). but not: foo *p = allocate_a_foo() memset(p, 0, sizeof(p)) although that's probably less likely to go wrong and I don't think it can be avoided by the sorts of tricks used here. > No callers yet, but document it in CODING_STYLE. (In accordance with > existing libxl policy, I haven't gone through all existing possible > call sites.) We don't usually expose such helpers in the public API, but I suppose you have a good reason to do so here, could you mention it in the commit log please. > > + > +#define LIBXL_FILLZERO(object) (memset(&(object), 0, sizeof((object)))) Evaluates object twice, so LIBXL_FILEZERO(*(p++)), would behave surprisingly. I'm not sure if this can be resolved though, so this might be a Don't Do That Then situation. Only answer I can think of is to require the type be passed to the macro and validating it matches the object via a pointer comparison. Ian. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |