Actually align the offset of allocated offscreen areas.

This commit is contained in:
Eric Anholt 2004-01-03 11:17:44 +00:00
parent 354f8f7e94
commit 1e1a35e20c
2 changed files with 6 additions and 1 deletions

View File

@ -121,6 +121,7 @@ typedef enum _KdOffscreenState {
struct _KdOffscreenArea {
int offset;
int save_offset;
int size;
pointer privData;

View File

@ -195,7 +195,10 @@ KdOffscreenAlloc (ScreenPtr pScreen, int size, int align,
area->state = KdOffscreenRemovable;
area->privData = privData;
area->save = save;
area->save_offset = area->offset;
area->offset = (area->offset + align - 1) & ~(align - 1);
KdOffscreenValidate (pScreen);
DBG_OFFSCREEN (("Alloc 0x%x -> 0x%x\n", size, area->offset));
@ -260,6 +263,7 @@ KdOffscreenFree (ScreenPtr pScreen, KdOffscreenArea *area)
area->state = KdOffscreenAvail;
area->save = 0;
area->offset = area->save_offset;
/*
* Find previous area