xserver: Branch 'master'

Aaron Plattner aplattner at kemper.freedesktop.org
Tue Jul 31 16:34:09 PDT 2007


 randr/rrscreen.c |    9 ++++++---
 1 files changed, 6 insertions(+), 3 deletions(-)

New commits:
diff-tree aec0d06469a2fa7440fdd5ee03dc256a68704e77 (from a93033b0bc14ed0bb95c680ded26b63cfe5fd1d3)
Author: Aaron Plattner <aplattner at nvidia.com>
Date:   Tue Jul 31 16:33:37 2007 -0700

    Fix a crash when rotating the screen.
    
    Remember output->crtc before setting a NULL mode because RRCrtcNotify now sets
    output->crtc to NULL.  Use the saved crtc to set the new mode.

diff --git a/randr/rrscreen.c b/randr/rrscreen.c
index d92a0ff..8798b42 100644
--- a/randr/rrscreen.c
+++ b/randr/rrscreen.c
@@ -738,6 +738,7 @@ ProcRRSetScreenConfig (ClientPtr client)
     int			    rate;
     Bool		    has_rate;
     RROutputPtr		    output;
+    RRCrtcPtr		    crtc;
     RRModePtr		    mode;
     RR10DataPtr		    pData = NULL;
     RRScreenSizePtr    	    pSize;
@@ -783,7 +784,9 @@ ProcRRSetScreenConfig (ClientPtr client)
 	rep.status = RRSetConfigFailed;
 	goto sendReply;
     }
-    
+
+    crtc = output->crtc;
+
     /*
      * if the client's config timestamp is not the same as the last config
      * timestamp, then the config information isn't up-to-date and
@@ -831,7 +834,7 @@ ProcRRSetScreenConfig (ClientPtr client)
 	return BadValue;
     }
 
-    if ((~output->crtc->rotations) & rotation)
+    if ((~crtc->rotations) & rotation)
     {
 	/*
 	 * requested rotation or reflection not supported by screen
@@ -914,7 +917,7 @@ ProcRRSetScreenConfig (ClientPtr client)
 	}
     }
 
-    if (!RRCrtcSet (output->crtc, mode, 0, 0, stuff->rotation, 1, &output))
+    if (!RRCrtcSet (crtc, mode, 0, 0, stuff->rotation, 1, &output))
 	rep.status = RRSetConfigFailed;
     else
 	rep.status = RRSetConfigSuccess;


More information about the xorg-commit mailing list