diff options
author | marha <marha@users.sourceforge.net> | 2011-02-10 07:12:27 +0000 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2011-02-10 07:12:27 +0000 |
commit | 183968dd18dc91f73325980bd511ed6bdb38b432 (patch) | |
tree | 44b101aea37e5ef679aca953399c20502dabdd01 /libX11/src/xcms/cmsProp.c | |
parent | 51a59b7f7f9b134791d3b09673063e4c45ea9eee (diff) | |
download | vcxsrv-183968dd18dc91f73325980bd511ed6bdb38b432.tar.gz vcxsrv-183968dd18dc91f73325980bd511ed6bdb38b432.tar.bz2 vcxsrv-183968dd18dc91f73325980bd511ed6bdb38b432.zip |
libX11 mesa git update 10 Feb 2011
Diffstat (limited to 'libX11/src/xcms/cmsProp.c')
-rw-r--r-- | libX11/src/xcms/cmsProp.c | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/libX11/src/xcms/cmsProp.c b/libX11/src/xcms/cmsProp.c index 856ae84b6..2826ee7be 100644 --- a/libX11/src/xcms/cmsProp.c +++ b/libX11/src/xcms/cmsProp.c @@ -121,20 +121,23 @@ _XcmsGetProperty( long len = 6516; unsigned long nitems_ret, after_ret; Atom atom_ret; + int xgwp_ret; - while (XGetWindowProperty (pDpy, w, property, 0, len, False, - XA_INTEGER, &atom_ret, &format_ret, - &nitems_ret, &after_ret, - (unsigned char **)&prop_ret)) { - if (after_ret > 0) { + while (True) { + xgwp_ret = XGetWindowProperty (pDpy, w, property, 0, len, False, + XA_INTEGER, &atom_ret, &format_ret, + &nitems_ret, &after_ret, + (unsigned char **)&prop_ret); + if (xgwp_ret == Success && after_ret > 0) { len += nitems_ret * (format_ret >> 3); XFree (prop_ret); } else { break; } } - if (format_ret == 0 || nitems_ret == 0) { - /* the property does not exist or is of an unexpected type */ + if (xgwp_ret != Success || format_ret == 0 || nitems_ret == 0) { + /* the property does not exist or is of an unexpected type or + getting window property failed */ return(XcmsFailure); } |