On 04/22/2011 10:31 AM, Christophe Fergeau wrote: > On Fri, Apr 22, 2011 at 10:17:01AM -0600, Eric Blake wrote: >> On 04/22/2011 10:11 AM, Matthias Bolte wrote: >>> remoteDispatchError(rerr); >>> - VIR_FREE(ret->names.names_len); >>> + VIR_FREE(ret->names.names_val); >> >> And to think I missed those in the huge patch. Oops. > > Maybe VIR_FREE should be changed to something like > > -# define VIR_FREE(ptr) virFree(&(ptr)) > +# define VIR_FREE(ptr) \ > + do { void *check_type = (ptr); virFree(&(check_type)); } while (0) Not quite. That assigns check_type to NULL, rather than the intended assignment of ptr. But the idea has merit; I'll see if I can come up with a variant that still evaluates ptr only once, by wrapping the type check in a sizeof hack. > I also get more warnings about casting from const to non-const, this can > be avoided by making check_type const void *, but maybe these warnings > indicate that something that shouldn't be freed is freed. How many warnings? If it's only a handful, we should start investigating; if it's lots, then I'm not sure how much it buys us. -- Eric Blake eblake@xxxxxxxxxx +1-801-349-2682 Libvirt virtualization library http://libvirt.org
Attachment:
signature.asc
Description: OpenPGP digital signature
-- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list