Close GPU screens before core screens
This should make cleaning up the GPU screens easier as the core screens they are associated with will still be around. Signed-off-by: Keith Packard <keithp@keithp.com> Reviewed-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
parent
19772670e3
commit
288b87e42c
18
dix/main.c
18
dix/main.c
|
@ -331,6 +331,15 @@ main(int argc, char *argv[], char *envp[])
|
|||
|
||||
CloseDownEvents();
|
||||
|
||||
for (i = screenInfo.numGPUScreens - 1; i >= 0; i--) {
|
||||
ScreenPtr pScreen = screenInfo.gpuscreens[i];
|
||||
FreeScratchPixmapsForScreen(pScreen);
|
||||
(*pScreen->CloseScreen) (pScreen);
|
||||
dixFreePrivates(pScreen->devPrivates, PRIVATE_SCREEN);
|
||||
free(pScreen);
|
||||
screenInfo.numGPUScreens = i;
|
||||
}
|
||||
|
||||
for (i = screenInfo.numScreens - 1; i >= 0; i--) {
|
||||
FreeScratchPixmapsForScreen(screenInfo.screens[i]);
|
||||
FreeGCperDepth(i);
|
||||
|
@ -342,15 +351,6 @@ main(int argc, char *argv[], char *envp[])
|
|||
screenInfo.numScreens = i;
|
||||
}
|
||||
|
||||
for (i = screenInfo.numGPUScreens - 1; i >= 0; i--) {
|
||||
ScreenPtr pScreen = screenInfo.gpuscreens[i];
|
||||
FreeScratchPixmapsForScreen(pScreen);
|
||||
(*pScreen->CloseScreen) (pScreen);
|
||||
dixFreePrivates(pScreen->devPrivates, PRIVATE_SCREEN);
|
||||
free(pScreen);
|
||||
screenInfo.numGPUScreens = i;
|
||||
}
|
||||
|
||||
ReleaseClientIds(serverClient);
|
||||
dixFreePrivates(serverClient->devPrivates, PRIVATE_CLIENT);
|
||||
serverClient->devPrivates = NULL;
|
||||
|
|
Loading…
Reference in New Issue
Block a user