[PATCH:libXv 2/7] Fix sign conversion & comparison warnings from clang
Alan Coopersmith
alan.coopersmith at oracle.com
Sun Jun 23 11:53:45 PDT 2013
Clears up:
Xv.c:196:21: warning: implicit conversion changes signedness: 'CARD32' (aka 'unsigned int') to 'int' [-Wsign-conversion]
size = rep.length << 2;
~ ~~~~~~~~~~~^~~~
Xv.c:212:41: warning: implicit conversion changes signedness: 'int' to 'size_t' (aka 'unsigned long') [-Wsign-conversion]
if ((pas=(XvAdaptorInfo *)Xmalloc(size))==NULL) {
~~~~~~~~^~~~~
Xv.c:236:43: warning: implicit conversion changes signedness: 'int' to 'unsigned long' [-Wsign-conversion]
pa->num_adaptors = rep.num_adaptors - ii;
~ ~~~~~~~~~~~~~~~~~^~~~
Xv.c:243:40: warning: implicit conversion changes signedness: 'int' to 'size_t' (aka 'unsigned long') [-Wsign-conversion]
if ( (name = (char *)Xmalloc(size+1)) == NULL)
~~~~~~~~~~~~^~~
Xv.c:251:37: warning: implicit conversion changes signedness: 'int' to 'size_t' (aka 'unsigned long') [-Wsign-conversion]
(void)strncpy(name, u.string, size);
~~~~~~~ ^~~~
Xv.c:260:36: warning: implicit conversion changes signedness: 'int' to 'size_t' (aka 'unsigned long') [-Wsign-conversion]
if ((pfs=(XvFormat *)Xmalloc(size))==NULL) {
~~~~~~~~^~~~~
Xv.c:269:20: warning: comparison of integers of different signs: 'int' and 'unsigned long' [-Wsign-compare]
for (jj=0; jj<pa->num_formats; jj++) {
~~^~~~~~~~~~~~~~~~
Xv.c:259:29: warning: implicit conversion loses integer precision: 'unsigned long' to 'int' [-Wshorten-64-to-32]
size = pa->num_formats*sizeof(XvFormat);
~ ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
Xv.c:305:16: warning: comparison of integers of different signs: 'int' and 'unsigned long' [-Wsign-compare]
for (ii=0; ii<pAdaptors->num_adaptors; ii++, pa++)
~~^~~~~~~~~~~~~~~~~~~~~~~~
Xv.c:356:21: warning: implicit conversion changes signedness: 'CARD32' (aka 'unsigned int') to 'int' [-Wsign-conversion]
size = rep.length << 2;
~ ~~~~~~~~~~~^~~~
Xv.c:369:41: warning: implicit conversion changes signedness: 'int' to 'size_t' (aka 'unsigned long') [-Wsign-conversion]
if ( (pes = (XvEncodingInfo *)Xmalloc(size)) == NULL) {
~~~~~~~~^~~~~
Xv.c:392:45: warning: implicit conversion changes signedness: 'int' to 'unsigned long' [-Wsign-conversion]
pe->num_encodings = rep.num_encodings - jj;
~ ~~~~~~~~~~~~~~~~~~^~~~
Xv.c:397:40: warning: implicit conversion changes signedness: 'int' to 'size_t' (aka 'unsigned long') [-Wsign-conversion]
if ( (name = (char *)Xmalloc(size+1)) == NULL) {
~~~~~~~~~~~~^~~
Xv.c:404:31: warning: implicit conversion changes signedness: 'int' to 'size_t' (aka 'unsigned long') [-Wsign-conversion]
strncpy(name, u.string, size);
~~~~~~~ ^~~~
Xv.c:433:16: warning: comparison of integers of different signs: 'int' and 'unsigned long' [-Wsign-compare]
for (ii=0; ii<pEncodings->num_encodings; ii++, pe++) {
~~^~~~~~~~~~~~~~~~~~~~~~~~~~
Xv.c:886:27: warning: comparison of integers of different signs: 'int' and 'CAR
D32' (aka 'unsigned int') [-Wsign-compare]
for (i = 0; i < rep.num_attributes; i++) {
~ ^ ~~~~~~~~~~~~~~~~~~
Xv.c:946:27: warning: comparison of integers of different signs: 'int' and 'CAR
D32' (aka 'unsigned int') [-Wsign-compare]
for (i = 0; i < rep.num_formats; i++) {
~ ^ ~~~~~~~~~~~~~~~
Xv.c:1100:5: warning: comparison of integers of different signs: 'int' and 'unsigned int' [-Wsign-compare]
SetReqLen(req, len, len);
^~~~~~~~~~~~~~~~~~~~~~~~
X11/Xlibint.h:530:27: note: expanded from macro 'SetReqLen'
if ((req->length + n) > (unsigned)65535) { \
^ ~~~~~~~~~~~~~~~
Xv.c:1100:20: warning: implicit conversion changes signedness: 'int' to 'unsigned int' [-Wsign-conversion]
SetReqLen(req, len, len);
~~~~~~~~~~~~~~~^~~~~~~~~
X11/Xlibint.h:532:21: note: expanded from macro 'SetReqLen'
MakeBigReq(req,n) \
^
X11/Xlibint.h:505:35: note: expanded from macro 'MakeBigReq'
((CARD32 *)req)[1] = _BRlen + n + 2; \
~ ^
Signed-off-by: Alan Coopersmith <alan.coopersmith at oracle.com>
---
src/Xv.c | 22 ++++++++++++----------
1 file changed, 12 insertions(+), 10 deletions(-)
diff --git a/src/Xv.c b/src/Xv.c
index 5df5464..c87c6cd 100644
--- a/src/Xv.c
+++ b/src/Xv.c
@@ -162,7 +162,8 @@ XvQueryAdaptors(
XExtDisplayInfo *info = xv_find_display(dpy);
xvQueryAdaptorsReq *req;
xvQueryAdaptorsReply rep;
- int size, ii, jj;
+ size_t size;
+ unsigned int ii, jj;
char *name;
XvAdaptorInfo *pas, *pa;
XvFormat *pfs, *pf;
@@ -195,7 +196,7 @@ XvQueryAdaptors(
SyncHandle();
return (XvBadAlloc);
}
- _XRead(dpy, buffer, size);
+ _XRead(dpy, buffer, (long) size);
u.buffer = buffer;
@@ -291,7 +292,7 @@ void
XvFreeAdaptorInfo(XvAdaptorInfo *pAdaptors)
{
XvAdaptorInfo *pa;
- int ii;
+ unsigned int ii;
if (!pAdaptors)
return;
@@ -320,7 +321,8 @@ XvQueryEncodings(
XExtDisplayInfo *info = xv_find_display(dpy);
xvQueryEncodingsReq *req;
xvQueryEncodingsReply rep;
- int size, jj;
+ size_t size;
+ unsigned int jj;
char *name;
XvEncodingInfo *pes, *pe;
char *buffer;
@@ -351,7 +353,7 @@ XvQueryEncodings(
SyncHandle();
return (XvBadAlloc);
}
- _XRead(dpy, buffer, size);
+ _XRead(dpy, buffer, (long) size);
u.buffer = buffer;
@@ -415,7 +417,7 @@ void
XvFreeEncodingInfo(XvEncodingInfo *pEncodings)
{
XvEncodingInfo *pe;
- int ii;
+ unsigned long ii;
if (!pEncodings)
return;
@@ -842,7 +844,7 @@ XvQueryPortAttributes(Display *dpy, XvPortID port, int *num)
if (ret != NULL) {
char *marker = (char *) (&ret[rep.num_attributes]);
xvAttributeInfo Info;
- int i;
+ unsigned int i;
/* keep track of remaining room for text strings */
size = rep.text_size;
@@ -906,7 +908,7 @@ XvListImageFormats(Display *dpy, XvPortID port, int *num)
if (ret != NULL) {
xvImageFormatInfo Info;
- int i;
+ unsigned int i;
for (i = 0; i < rep.num_formats; i++) {
_XRead(dpy, (char *) (&Info), sz_xvImageFormatInfo);
@@ -1036,7 +1038,7 @@ XvPutImage(
{
XExtDisplayInfo *info = xv_find_display(dpy);
xvPutImageReq *req;
- int len;
+ unsigned int len;
XvCheckExtension(dpy, info, XvBadExtension);
@@ -1061,7 +1063,7 @@ XvPutImage(
req->width = image->width;
req->height = image->height;
- len = (image->data_size + 3) >> 2;
+ len = ((unsigned int) image->data_size + 3) >> 2;
SetReqLen(req, len, len);
/* Yes it's kindof lame that we are sending the whole thing,
--
1.7.9.2
More information about the xorg-devel
mailing list