summaryrefslogtreecommitdiff
path: root/src/i830_driver.c
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2009-05-01 11:46:51 -0700
committerKeith Packard <keithp@keithp.com>2009-05-01 11:54:32 -0700
commit1872869e6ffcc8e6cab820c508fe5404d7e8ff9c (patch)
treedb4ea04cc898928378acb2c6977b284c597b6811 /src/i830_driver.c
parent1142353b487c155a31011923fbd08ec67e60f505 (diff)
Leave allocator running until lower-level CloseScreens are done
The lower level close screen functions will free allocated objects, causing a crash if the allocator isn't still available. Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'src/i830_driver.c')
-rw-r--r--src/i830_driver.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/i830_driver.c b/src/i830_driver.c
index 1ff58668..ff7124df 100644
--- a/src/i830_driver.c
+++ b/src/i830_driver.c
@@ -3079,7 +3079,6 @@ I830CloseScreen(int scrnIndex, ScreenPtr pScreen)
xf86_cursors_fini (pScreen);
- i830_allocator_fini(pScrn);
i965_free_video(pScrn);
free(pI830->offscreenImages);
@@ -3099,7 +3098,9 @@ I830CloseScreen(int scrnIndex, ScreenPtr pScreen)
pScrn->vtSema = FALSE;
pI830->closing = FALSE;
pScreen->CloseScreen = pI830->CloseScreen;
- return (*pScreen->CloseScreen) (scrnIndex, pScreen);
+ (*pScreen->CloseScreen) (scrnIndex, pScreen);
+ i830_allocator_fini(pScrn);
+ return TRUE;
}
static ModeStatus