Correctly handle empty rects on region initialization.
This commit is contained in:
parent
5620122206
commit
582a9f0d2e
|
@ -29,13 +29,13 @@ Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
|
||||||
|
|
||||||
All Rights Reserved
|
All Rights Reserved
|
||||||
|
|
||||||
Permission to use, copy, modify, and distribute this software and its
|
Permission to use, copy, modify, and distribute this software and its
|
||||||
documentation for any purpose and without fee is hereby granted,
|
documentation for any purpose and without fee is hereby granted,
|
||||||
provided that the above copyright notice appear in all copies and that
|
provided that the above copyright notice appear in all copies and that
|
||||||
both that copyright notice and this permission notice appear in
|
both that copyright notice and this permission notice appear in
|
||||||
supporting documentation, and that the name of Digital not be
|
supporting documentation, and that the name of Digital not be
|
||||||
used in advertising or publicity pertaining to distribution of the
|
used in advertising or publicity pertaining to distribution of the
|
||||||
software without specific, written prior permission.
|
software without specific, written prior permission.
|
||||||
|
|
||||||
DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
|
DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
|
||||||
ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
|
ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
|
||||||
|
@ -63,7 +63,7 @@ typedef struct _Region RegionRec, *RegionPtr;
|
||||||
|
|
||||||
#define NullRegion ((RegionPtr)0)
|
#define NullRegion ((RegionPtr)0)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* clip region
|
* clip region
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -250,9 +250,25 @@ extern RegDataRec miBrokenData;
|
||||||
#define REGION_INIT(_pScreen, _pReg, _rect, _size) \
|
#define REGION_INIT(_pScreen, _pReg, _rect, _size) \
|
||||||
{ \
|
{ \
|
||||||
REGION_SCREEN(_pScreen); \
|
REGION_SCREEN(_pScreen); \
|
||||||
(_pReg)->extents = *(_rect); \
|
if (_rect) \
|
||||||
(_pReg)->data = (RegDataPtr)NULL; \
|
{ \
|
||||||
}
|
(_pReg)->extents = *(_rect); \
|
||||||
|
(_pReg)->data = (RegDataPtr)NULL; \
|
||||||
|
} \
|
||||||
|
else \
|
||||||
|
{ \
|
||||||
|
(_pReg)->extents = miEmptyBox; \
|
||||||
|
if (((_size) > 1) && ((_pReg)->data = \
|
||||||
|
(RegDataPtr)xalloc(REGION_SZOF(_size)))) \
|
||||||
|
{ \
|
||||||
|
(_pReg)->data->size = (_size); \
|
||||||
|
(_pReg)->data->numRects = 0; \
|
||||||
|
} \
|
||||||
|
else \
|
||||||
|
(_pReg)->data = &miEmptyData; \
|
||||||
|
} \
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#define REGION_UNINIT(_pScreen, _pReg) \
|
#define REGION_UNINIT(_pScreen, _pReg) \
|
||||||
{ \
|
{ \
|
||||||
|
|
Loading…
Reference in New Issue
Block a user