Fix a couple of bugs.

This commit is contained in:
Anders Carlsson 2003-10-13 00:56:21 +00:00
parent a50438b470
commit c538fa8742

View File

@ -76,6 +76,7 @@ KdOffscreenAlloc (ScreenPtr pScreen, int size, int align,
{ {
area->area.screen = pScreen; area->area.screen = pScreen;
area->area.privData = privData; area->area.privData = privData;
area->area.swappedOut = FALSE;
area->locked = locked; area->locked = locked;
area->moveIn = moveIn; area->moveIn = moveIn;
area->moveOut = moveOut; area->moveOut = moveOut;
@ -88,6 +89,10 @@ KdOffscreenAlloc (ScreenPtr pScreen, int size, int align,
new_area->area.offset = area->area.offset + area->area.size - real_size; new_area->area.offset = area->area.offset + area->area.size - real_size;
new_area->area.size = real_size; new_area->area.size = real_size;
new_area->area.screen = pScreen; new_area->area.screen = pScreen;
new_area->area.swappedOut = FALSE;
new_area->locked = locked;
new_area->moveIn = moveIn;
new_area->moveOut = moveOut;
area->area.size -= real_size; area->area.size -= real_size;
@ -116,6 +121,9 @@ KdOffscreenSwapOut (ScreenPtr pScreen)
while (area) while (area)
{ {
fprintf (stderr, "area is: %p\n", area);
if (area->area.screen && area->moveOut)
(*area->moveOut) ((KdOffscreenArea *)area); (*area->moveOut) ((KdOffscreenArea *)area);
area->area.swappedOut = TRUE; area->area.swappedOut = TRUE;
@ -132,9 +140,10 @@ KdOffscreenSwapIn (ScreenPtr pScreen)
while (area) while (area)
{ {
(*area->moveOut) ((KdOffscreenArea *)area); if (area->area.screen && area->moveIn)
(*area->moveIn) ((KdOffscreenArea *)area);
area->area.swappedOut = TRUE; area->area.swappedOut = FALSE;
area = area->next; area = area->next;
} }
} }
@ -189,6 +198,7 @@ KdOffscreenInit (ScreenPtr pScreen)
area->area.screen = NULL; area->area.screen = NULL;
area->area.offset = pScreenPriv->screen->off_screen_base; area->area.offset = pScreenPriv->screen->off_screen_base;
area->area.size = pScreenPriv->screen->off_screen_size; area->area.size = pScreenPriv->screen->off_screen_size;
area->area.swappedOut = FALSE;
area->next = NULL; area->next = NULL;
area->prev = NULL; area->prev = NULL;