2010/5/14 Keith Packard <[email protected]>: > On Thu, 13 May 2010 09:49:45 -0400, Kristian Høgsberg <[email protected]> > wrote: >> >> This works for me and seems like a better way to fix those warnings: >> >> diff --git a/include/input.h b/include/input.h >> index 63f981e..eba4292 100644 >> --- a/include/input.h >> +++ b/include/input.h >> @@ -212,10 +212,10 @@ typedef struct _InputOption { >> } InputOption; >> >> typedef struct _InputAttributes { >> - char *product; >> - char *vendor; >> - char *device; >> - char **tags; /* null-terminated */ >> + const char *product; >> + const char *vendor; >> + const char *device; >> + const char **tags; /* null-terminated */ >> uint32_t flags; >> } InputAttributes; > > I had to add some casts while freeing to get rid of the warnings there > too: > > From 398b7b0922732fbaa0418059e93efeed57070167 Mon Sep 17 00:00:00 2001 > From: Keith Packard <[email protected]> > Date: Fri, 14 May 2010 17:39:18 -0700 > Subject: [PATCH] Fix a couple of compiler warnings > > Signed-off-by: Keith Packard <[email protected]> > --- > config/udev.c | 8 ++++---- > include/input.h | 8 ++++---- > 2 files changed, 8 insertions(+), 8 deletions(-)
Please also fix config/hal. Or see the other thread. http://lists.freedesktop.org/archives/xorg-devel/2010-May/008239.html Either way, let's get something in. I keep having to rebase patches on these changes. > diff --git a/config/udev.c b/config/udev.c > index 5e8d8da..c579ee2 100644 > --- a/config/udev.c > +++ b/config/udev.c > @@ -87,7 +87,7 @@ device_added(struct udev_device *udev_device) > add_option(&options, "path", path); > add_option(&options, "device", path); > attrs.device = path; > - attrs.tags = xstrtokenize(udev_device_get_property_value(udev_device, > "ID_INPUT.tags"), ","); > + attrs.tags = (const char *const *) > xstrtokenize(udev_device_get_property_value(udev_device, "ID_INPUT.tags"), > ","); > > config_info = Xprintf("udev:%s", syspath); > if (!config_info) > @@ -155,12 +155,12 @@ device_added(struct udev_device *udev_device) > } > > if (attrs.tags) { > - char **tag = attrs.tags; > + const char *const *tag = attrs.tags; > while (*tag) { > - free(*tag); > + free((void *) *tag); > tag++; > } > - free(attrs.tags); > + free((void *) attrs.tags); There's a lot less casting if you use a temporary char ** variable and then set attr.tags equal to it. -- Dan _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
