Preserve constness in casting arguments through the Data*() routines

Casts were annoying gcc by dropping constness when changing types,
when routines simply either copy data into the request buffer or
send it directly to the X server, and never modify the input.

Fixes gcc warnings including:
ChProp.c: In function 'XChangeProperty':
ChProp.c:65:6: warning: cast discards '__attribute__((const))' qualifier from pointer target type [-Wcast-qual]
ChProp.c:65:6: warning: cast discards '__attribute__((const))' qualifier from pointer target type [-Wcast-qual]
ChProp.c:74:6: warning: cast discards '__attribute__((const))' qualifier from pointer target type [-Wcast-qual]
ChProp.c:74:6: warning: cast discards '__attribute__((const))' qualifier from pointer target type [-Wcast-qual]
ChProp.c:83:6: warning: cast discards '__attribute__((const))' qualifier from pointer target type [-Wcast-qual]
SetHints.c: In function 'XSetStandardProperties':
SetHints.c:262:20: warning: cast discards '__attribute__((const))' qualifier from pointer target type [-Wcast-qual]
SetPntMap.c: In function 'XSetPointerMapping':
SetPntMap.c:46:5: warning: cast discards '__attribute__((const))' qualifier from pointer target type [-Wcast-qual]
SetPntMap.c:46:5: warning: cast discards '__attribute__((const))' qualifier from pointer target type [-Wcast-qual]
StBytes.c: In function 'XStoreBuffer':
StBytes.c:97:33: warning: cast discards '__attribute__((const))' qualifier from pointer target type [-Wcast-qual]
StName.c: In function 'XStoreName':
StName.c:40:27: warning: cast discards '__attribute__((const))' qualifier from pointer target type [-Wcast-qual]
StName.c: In function 'XSetIconName':
StName.c:51:27: warning: cast discards '__attribute__((const))' qualifier from pointer target type [-Wcast-qual]

Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
This commit is contained in:
Alan Coopersmith 2013-02-15 23:34:40 -08:00
parent 6c558ee357
commit f0b171c8ea
7 changed files with 23 additions and 21 deletions

View file

@ -610,17 +610,17 @@ extern void _XFlushGCCache(Display *dpy, GC gc);
dpy->bufptr += (n);
#ifdef WORD64
#define Data16(dpy, data, len) _XData16(dpy, (short *)data, len)
#define Data32(dpy, data, len) _XData32(dpy, (long *)data, len)
#define Data16(dpy, data, len) _XData16(dpy, (_Xconst short *)data, len)
#define Data32(dpy, data, len) _XData32(dpy, (_Xconst long *)data, len)
#else
#define Data16(dpy, data, len) Data((dpy), (char *)(data), (len))
#define Data16(dpy, data, len) Data((dpy), (_Xconst char *)(data), (len))
#define _XRead16Pad(dpy, data, len) _XReadPad((dpy), (char *)(data), (len))
#define _XRead16(dpy, data, len) _XRead((dpy), (char *)(data), (len))
#ifdef LONG64
#define Data32(dpy, data, len) _XData32(dpy, (long *)data, len)
#define Data32(dpy, data, len) _XData32(dpy, (_Xconst long *)data, len)
extern int _XData32(
Display *dpy,
register long *data,
register _Xconst long *data,
unsigned len
);
extern void _XRead32(
@ -629,7 +629,7 @@ extern void _XRead32(
long len
);
#else
#define Data32(dpy, data, len) Data((dpy), (char *)(data), (len))
#define Data32(dpy, data, len) Data((dpy), (_Xconst char *)(data), (len))
#define _XRead32(dpy, data, len) _XRead((dpy), (char *)(data), (len))
#endif
#endif /* not WORD64 */

View file

@ -62,7 +62,7 @@ XChangeProperty (
len = ((long)nelements + 3)>>2;
if (dpy->bigreq_size || req->length + len <= (unsigned) 65535) {
SetReqLen(req, len, len);
Data (dpy, (char *)data, nelements);
Data (dpy, (_Xconst char *)data, nelements);
} /* else force BadLength */
break;
@ -71,7 +71,7 @@ XChangeProperty (
if (dpy->bigreq_size || req->length + len <= (unsigned) 65535) {
SetReqLen(req, len, len);
len = (long)nelements << 1;
Data16 (dpy, (short *) data, len);
Data16 (dpy, (_Xconst short *) data, len);
} /* else force BadLength */
break;
@ -80,7 +80,7 @@ XChangeProperty (
if (dpy->bigreq_size || req->length + len <= (unsigned) 65535) {
SetReqLen(req, len, len);
len = (long)nelements << 2;
Data32 (dpy, (long *) data, len);
Data32 (dpy, (_Xconst long *) data, len);
} /* else force BadLength */
break;

View file

@ -259,7 +259,9 @@ XSetStandardProperties (
if (icon_string != NULL) {
XChangeProperty (dpy, w, XA_WM_ICON_NAME, XA_STRING, 8,
PropModeReplace, (unsigned char *)icon_string, safestrlen(icon_string));
PropModeReplace,
(_Xconst unsigned char *)icon_string,
safestrlen(icon_string));
}
if (icon_pixmap != None) {

View file

@ -43,7 +43,7 @@ XSetPointerMapping (
GetReq (SetPointerMapping, req);
req->nElts = nmaps;
req->length += (nmaps + 3)>>2;
Data (dpy, (char *)map, (long) nmaps);
Data (dpy, (_Xconst char *)map, (long) nmaps);
if (_XReply (dpy, (xReply *)&rep, 0, xFalse) == 0)
rep.success = MappingSuccess;
UnlockDisplay(dpy);

View file

@ -94,7 +94,7 @@ XStoreBuffer (
{
if ((buffer < 0) || (buffer > 7)) return 0;
return XChangeProperty(dpy, RootWindow(dpy, 0), n_to_atom[buffer],
XA_STRING, 8, PropModeReplace, (unsigned char *) bytes, nbytes);
XA_STRING, 8, PropModeReplace, (_Xconst unsigned char *) bytes, nbytes);
}
int

View file

@ -37,7 +37,7 @@ XStoreName (
_Xconst char *name)
{
return XChangeProperty(dpy, w, XA_WM_NAME, XA_STRING,
8, PropModeReplace, (unsigned char *)name,
8, PropModeReplace, (_Xconst unsigned char *)name,
name ? strlen(name) : 0);
}
@ -47,7 +47,7 @@ XSetIconName (
Window w,
_Xconst char *icon_name)
{
return XChangeProperty(dpy, w, XA_WM_ICON_NAME, XA_STRING,
8, PropModeReplace, (unsigned char *)icon_name,
return XChangeProperty(dpy, w, XA_WM_ICON_NAME, XA_STRING, 8,
PropModeReplace, (_Xconst unsigned char *)icon_name,
icon_name ? strlen(icon_name) : 0);
}

View file

@ -1722,7 +1722,7 @@ void _Xbcopy(b1, b2, length)
#ifdef DataRoutineIsProcedure
void Data(
Display *dpy,
char *data,
_Xconst char *data,
long len)
{
if (dpy->bufptr + (len) <= dpy->bufmax) {
@ -1739,7 +1739,7 @@ void Data(
int
_XData32(
Display *dpy,
register long *data,
register _Xconst long *data,
unsigned len)
{
register int *buf;
@ -1781,7 +1781,7 @@ _XData32(
static doData16(
register Display *dpy,
short *data,
_Xconst short *data,
unsigned len,
char *packbuffer)
{
@ -1814,7 +1814,7 @@ static doData16(
_XData16 (
Display *dpy,
short *data,
_Xconst short *data,
unsigned len)
{
char packbuffer[PACKBUFFERSIZE];
@ -1836,7 +1836,7 @@ _XData16 (
static doData32(
register Display *dpy
long *data,
_Xconst long *data,
unsigned len,
char *packbuffer)
{
@ -1867,7 +1867,7 @@ static doData32(
void _XData32(
Display *dpy,
long *data,
_Xconst long *data,
unsigned len)
{
char packbuffer[PACKBUFFERSIZE];