From 725710fd0bc990b2c35e4c76128ef1c668013299 Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Thu, 29 Nov 2007 19:40:53 +1100 Subject: [PATCH] randr: make randr code not segfault when xinerama set --- hw/xfree86/modes/xf86RandR12.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/hw/xfree86/modes/xf86RandR12.c b/hw/xfree86/modes/xf86RandR12.c index 61a7db3bd..8fbb877b1 100644 --- a/hw/xfree86/modes/xf86RandR12.c +++ b/hw/xfree86/modes/xf86RandR12.c @@ -538,7 +538,11 @@ xf86RandR12SetRotations (ScreenPtr pScreen, Rotation rotations) ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; int c; xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(pScrn); +#endif + if (!xf86RandR12Index) + return; +#if RANDR_12_INTERFACE for (c = 0; c < config->num_crtc; c++) { xf86CrtcPtr crtc = config->crtc[c]; @@ -1062,12 +1066,15 @@ static Bool xf86RandR12CreateScreenResources12 (ScreenPtr pScreen) { int c; + XF86RandRInfoPtr randrp = XF86RANDRINFO(pScreen); ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(pScrn); + if (!xf86RandR12Index) + return TRUE; + for (c = 0; c < config->num_crtc; c++) - xf86RandR12CrtcNotify (config->crtc[c]->randr_crtc); - + xf86RandR12CrtcNotify (config->crtc[c]->randr_crtc); RRScreenSetSizeRange (pScreen, config->minWidth, config->minHeight, config->maxWidth, config->maxHeight); @@ -1087,7 +1094,7 @@ xf86RandR12TellChanged (ScreenPtr pScreen) XF86RandRInfoPtr randrp = XF86RANDRINFO(pScreen); int c; - if (!randrp) + if (!xf86RandR12Index) return; xf86RandR12SetInfo12 (pScreen); for (c = 0; c < config->num_crtc; c++)