From 492c768065f49306a2194a88edf96b85de0ff4ff Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Fri, 23 Mar 2007 00:59:11 -0700 Subject: [PATCH] Clean up xf86CrtcRec and xf86OutputRec objects at CloseScreen. Erase pointers to structures which are freed at server reset time. --- hw/xfree86/modes/xf86Crtc.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/hw/xfree86/modes/xf86Crtc.c b/hw/xfree86/modes/xf86Crtc.c index a875cdf39..fad0752eb 100644 --- a/hw/xfree86/modes/xf86Crtc.c +++ b/hw/xfree86/modes/xf86Crtc.c @@ -573,11 +573,25 @@ xf86CrtcCloseScreen (int index, ScreenPtr screen) { ScrnInfoPtr scrn = xf86Screens[screen->myNum]; xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(scrn); + int o, c; screen->CloseScreen = config->CloseScreen; xf86RotateCloseScreen (screen); + for (o = 0; o < config->num_output; o++) + { + xf86OutputPtr output = config->output[o]; + + output->crtc = NULL; + output->randr_output = NULL; + } + for (c = 0; c < config->num_crtc; c++) + { + xf86CrtcPtr crtc = config->crtc[c]; + + crtc->randr_crtc = NULL; + } return screen->CloseScreen (index, screen); }