Add a RegionDuplicate function
This allocates a new region structure and copies a source region into it in a single API rather than forcing the caller to do both steps themselves. Signed-off-by: Keith Packard <keithp@keithp.com> Reviewed-by: Adam Jackson <ajax@redhat.com>
This commit is contained in:
parent
d25c217964
commit
26f013ba45
15
dix/region.c
15
dix/region.c
|
@ -255,6 +255,21 @@ RegionDestroy(RegionPtr pReg)
|
|||
free(pReg);
|
||||
}
|
||||
|
||||
RegionPtr
|
||||
RegionDuplicate(RegionPtr pOld)
|
||||
{
|
||||
RegionPtr pNew;
|
||||
|
||||
pNew = RegionCreate(&pOld->extents, 0);
|
||||
if (!pNew)
|
||||
return NULL;
|
||||
if (!RegionCopy(pNew, pOld)) {
|
||||
RegionDestroy(pNew);
|
||||
return NULL;
|
||||
}
|
||||
return pNew;
|
||||
}
|
||||
|
||||
void
|
||||
RegionPrint(RegionPtr rgn)
|
||||
{
|
||||
|
|
|
@ -213,6 +213,8 @@ extern _X_EXPORT RegionPtr RegionCreate(BoxPtr /*rect */ ,
|
|||
|
||||
extern _X_EXPORT void RegionDestroy(RegionPtr /*pReg */ );
|
||||
|
||||
extern _X_EXPORT RegionPtr RegionDuplicate(RegionPtr /* pOld */);
|
||||
|
||||
static inline Bool
|
||||
RegionCopy(RegionPtr dst, RegionPtr src)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue