From 16b2ea64e7e0bd32d6dba078b4891167bd335d44 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Thu, 16 Oct 2003 08:03:25 +0000 Subject: 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 --- hw/kdrive/src/kdrive.h | 2 +- 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; -- cgit v1.2.3