diff options
author | Keith Packard <keithp@keithp.com> | 2003-10-16 08:03:25 +0000 |
---|---|---|
committer | Keith Packard <keithp@keithp.com> | 2003-10-16 08:03:25 +0000 |
commit | 16b2ea64e7e0bd32d6dba078b4891167bd335d44 (patch) | |
tree | fe37a0745b44bcf1e35a20c4d4968ddae9235cc1 | |
parent | f4bcd36a386116c450ea6893ab3d08e81cea663b (diff) |
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
-rw-r--r-- | hw/kdrive/src/kdrive.h | 2 | ||||
-rw-r--r-- | hw/kdrive/src/koffscreen.c | 4 |
2 files changed, 3 insertions, 3 deletions
diff --git a/hw/kdrive/src/kdrive.h b/hw/kdrive/src/kdrive.h index df59bb972..6cc976913 100644 --- a/hw/kdrive/src/kdrive.h +++ b/hw/kdrive/src/kdrive.h @@ -121,7 +121,7 @@ typedef struct _KdScreenInfo { CARD8 *memory_base; int off_screen_base; int off_screen_size; - pointer off_screen_areas; + struct _RealOffscreenArea *off_screen_areas; } KdScreenInfo; typedef struct _KdCardFuncs { diff --git a/hw/kdrive/src/koffscreen.c b/hw/kdrive/src/koffscreen.c index 1454c4a64..65c15a284 100644 --- a/hw/kdrive/src/koffscreen.c +++ b/hw/kdrive/src/koffscreen.c @@ -222,12 +222,13 @@ KdOffscreenSwapOut (ScreenPtr pScreen) KdOffscreenValidate (pScreen); } KdOffscreenValidate (pScreen); + KdOffscreenFini (pScreen); } void KdOffscreenSwapIn (ScreenPtr pScreen) { - /* nothing to do here; page in on usage */ + KdOffscreenInit (pScreen); } /* merge the next free area into this one */ @@ -248,7 +249,6 @@ KdOffscreenMerge (KdOffscreenArea *area) void KdOffscreenFree (KdOffscreenArea *area) { - ScreenPtr pScreen = area->screen; RealOffscreenArea *real_area = (RealOffscreenArea *) area; RealOffscreenArea *next = real_area->next; RealOffscreenArea *prev = real_area->prev; |