Discard/reconstruct list of offscreen areas on VT switch so no allocations

can occur while switched away.
Set type of off_screen_areas member to actual type instead of pointer
This commit is contained in:
Keith Packard 2003-10-16 08:03:25 +00:00
parent f4bcd36a38
commit 16b2ea64e7
2 changed files with 3 additions and 3 deletions

View File

@ -121,7 +121,7 @@ typedef struct _KdScreenInfo {
CARD8 *memory_base; CARD8 *memory_base;
int off_screen_base; int off_screen_base;
int off_screen_size; int off_screen_size;
pointer off_screen_areas; struct _RealOffscreenArea *off_screen_areas;
} KdScreenInfo; } KdScreenInfo;
typedef struct _KdCardFuncs { typedef struct _KdCardFuncs {

View File

@ -222,12 +222,13 @@ KdOffscreenSwapOut (ScreenPtr pScreen)
KdOffscreenValidate (pScreen); KdOffscreenValidate (pScreen);
} }
KdOffscreenValidate (pScreen); KdOffscreenValidate (pScreen);
KdOffscreenFini (pScreen);
} }
void void
KdOffscreenSwapIn (ScreenPtr pScreen) KdOffscreenSwapIn (ScreenPtr pScreen)
{ {
/* nothing to do here; page in on usage */ KdOffscreenInit (pScreen);
} }
/* merge the next free area into this one */ /* merge the next free area into this one */
@ -248,7 +249,6 @@ KdOffscreenMerge (KdOffscreenArea *area)
void void
KdOffscreenFree (KdOffscreenArea *area) KdOffscreenFree (KdOffscreenArea *area)
{ {
ScreenPtr pScreen = area->screen;
RealOffscreenArea *real_area = (RealOffscreenArea *) area; RealOffscreenArea *real_area = (RealOffscreenArea *) area;
RealOffscreenArea *next = real_area->next; RealOffscreenArea *next = real_area->next;
RealOffscreenArea *prev = real_area->prev; RealOffscreenArea *prev = real_area->prev;