[PATCH:libXt 4/6] Fix char vs. unsigned char warnings.
Thomas Klausner
wiz at netbsd.org
Wed Jun 26 23:33:02 PDT 2013
On Wed, Jun 26, 2013 at 08:55:35PM -0400, Thomas E. Dickey wrote:
> On Tue, Jun 25, 2013 at 11:02:48PM +0200, Thomas Klausner wrote:
> > ---
> > src/ResConfig.c | 4 ++--
> > src/TMparse.c | 4 ++--
> > 2 files changed, 4 insertions(+), 4 deletions(-)
> >
> > diff --git a/src/ResConfig.c b/src/ResConfig.c
> > index 152d9cf..5a7f6d2 100644
> > --- a/src/ResConfig.c
> > +++ b/src/ResConfig.c
> > @@ -892,7 +892,7 @@ _XtResourceConfigurationEH (
> > int actual_format;
> > unsigned long nitems;
> > unsigned long leftover;
> > - unsigned char *data = NULL;
> > + char *data = NULL;
> > unsigned long resource_len;
> > char *data_ptr;
> > char *resource;
> > @@ -952,7 +952,7 @@ _XtResourceConfigurationEH (
> > pd->rcm_data, 0L, 8192L,
> > TRUE, XA_STRING,
> > &actual_type, &actual_format, &nitems, &leftover,
> > - &data ) == Success && actual_type == XA_STRING
> > + (unsigned char **)&data ) == Success && actual_type == XA_STRING
> > && actual_format == 8) {
>
> One problem with casts is that they're telling the compiler to ignore its type-checking.
> Casting an address like that happens to work - usually - but not always.
The problem is that the same variable is used in strtoul as first
argument, which wants a 'const char *', and in XGetWindowProperty as
12th (if I didn't miscount), which wants an unsigned char **.
i.e.
if (XGetWindowProperty (XtDisplay(w),
XtWindow (w),
pd->rcm_data, 0L, 8192L,
TRUE, XA_STRING,
&actual_type, &actual_format, &nitems, &leftover,
(unsigned char **)&data ) == Success && actual_type == XA_STRING
&& actual_format == 8) {
...
resource_len = strtoul (data, &data_ptr, 10);
How would you suggest fixing issues like that?
Thomas
More information about the xorg-devel
mailing list