From 2e07e9d4f300e8153e4e93cd78bc51e0d91dba6f Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Mon, 9 Nov 2009 17:51:03 -0500 Subject: GetCrtcGamma: Fix error handling. We didn't treat _XReply failure as fatal. Parsing an xError as a gamma ramp reply doesn't work that often. Signed-off-by: Adam Jackson Reviewed-by: Jamey Sharp --- src/XrrCrtc.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/XrrCrtc.c b/src/XrrCrtc.c index 3f048e2..697987a 100644 --- a/src/XrrCrtc.c +++ b/src/XrrCrtc.c @@ -179,7 +179,7 @@ XRRGetCrtcGamma (Display *dpy, RRCrtc crtc) XExtDisplayInfo *info = XRRFindDisplay(dpy); xRRGetCrtcGammaReply rep; xRRGetCrtcGammaReq *req; - XRRCrtcGamma *crtc_gamma; + XRRCrtcGamma *crtc_gamma = NULL; long nbytes; long nbytesRead; @@ -192,7 +192,7 @@ XRRGetCrtcGamma (Display *dpy, RRCrtc crtc) req->crtc = crtc; if (!_XReply (dpy, (xReply *) &rep, 0, xFalse)) - rep.status = RRSetConfigFailed; + goto out; nbytes = (long) rep.length << 2; @@ -204,9 +204,7 @@ XRRGetCrtcGamma (Display *dpy, RRCrtc crtc) if (!crtc_gamma) { _XEatData (dpy, (unsigned long) nbytes); - UnlockDisplay (dpy); - SyncHandle (); - return NULL; + goto out; } _XRead16 (dpy, crtc_gamma->red, rep.size * 2); _XRead16 (dpy, crtc_gamma->green, rep.size * 2); @@ -214,7 +212,8 @@ XRRGetCrtcGamma (Display *dpy, RRCrtc crtc) if (nbytes > nbytesRead) _XEatData (dpy, (unsigned long) (nbytes - nbytesRead)); - + +out: UnlockDisplay (dpy); SyncHandle (); return crtc_gamma; -- cgit v1.2.1