#define PIXREGION_TOP(reg) PIXREGION_BOX(reg, (reg)->data->numRects)
#define PIXREGION_END(reg) PIXREGION_BOX(reg, (reg)->data->numRects - 1)
-
-#define good(reg) assert(PREFIX(_selfcheck) (reg))
+#define GOOD(reg) assert(PREFIX(_selfcheck) (reg))
static const box_type_t PREFIX(_emptyBox_) = {0, 0, 0, 0};
static const region_data_type_t PREFIX(_emptyData_) = {0, 0};
}
static void *
-allocData(size_t n)
+alloc_data(size_t n)
{
size_t sz = PIXREGION_SZOF(n);
if (!sz)
return malloc(sz);
}
-#define freeData(reg) if ((reg)->data && (reg)->data->size) free((reg)->data)
+#define FREE_DATA(reg) if ((reg)->data && (reg)->data->size) free((reg)->data)
#define RECTALLOC_BAIL(region,n,bail) \
if (!(region)->data || (((region)->data->numRects + (n)) > (region)->data->size)) \
PIXMAN_EXPORT void
PREFIX(_fini) (region_type_t *region)
{
- good (region);
- freeData (region);
+ GOOD (region);
+ FREE_DATA (region);
}
PIXMAN_EXPORT int
static pixman_bool_t
pixman_break (region_type_t *region)
{
- freeData (region);
+ FREE_DATA (region);
region->extents = *pixman_region_emptyBox;
region->data = pixman_brokendata;
return FALSE;
if (!region->data)
{
n++;
- region->data = allocData(n);
+ region->data = alloc_data(n);
if (!region->data)
return pixman_break (region);
region->data->numRects = 1;
}
else if (!region->data->size)
{
- region->data = allocData(n);
+ region->data = alloc_data(n);
if (!region->data)
return pixman_break (region);
region->data->numRects = 0;
PIXMAN_EXPORT pixman_bool_t
PREFIX(_copy) (region_type_t *dst, region_type_t *src)
{
- good(dst);
- good(src);
+ GOOD(dst);
+ GOOD(src);
if (dst == src)
return TRUE;
dst->extents = src->extents;
if (!src->data || !src->data->size)
{
- freeData(dst);
+ FREE_DATA(dst);
dst->data = src->data;
return TRUE;
}
if (!dst->data || (dst->data->size < src->data->numRects))
{
- freeData(dst);
- dst->data = allocData(src->data->numRects);
+ FREE_DATA(dst);
+ dst->data = alloc_data(src->data->numRects);
if (!dst->data)
return pixman_break (dst);
dst->data->size = src->data->numRects;
if (!(numRects = newReg->data->numRects))
{
- freeData(newReg);
+ FREE_DATA(newReg);
newReg->data = pixman_region_emptyData;
}
else if (numRects == 1)
{
newReg->extents = *PIXREGION_BOXPTR(newReg);
- freeData(newReg);
+ FREE_DATA(newReg);
newReg->data = (region_data_type_t *)NULL;
}
else
* Since box is the first rectangle in the region, it must have the
* smallest y1 and since boxEnd is the last rectangle in the region,
* it must have the largest y2, because of banding. Initialize x1 and
- * x2 from box and boxEnd, resp., as good things to initialize them
+ * x2 from box and boxEnd, resp., as GOOD things to initialize them
* to...
*/
region->extents.x1 = box->x1;
region_type_t * reg1,
region_type_t * reg2)
{
- good(reg1);
- good(reg2);
- good(newReg);
+ GOOD(reg1);
+ GOOD(reg2);
+ GOOD(newReg);
/* check for trivial reject */
if (PIXREGION_NIL(reg1) || PIXREGION_NIL(reg2) ||
!EXTENTCHECK(®1->extents, ®2->extents))
{
/* Covers about 20% of all cases */
- freeData(newReg);
+ FREE_DATA(newReg);
newReg->extents.x2 = newReg->extents.x1;
newReg->extents.y2 = newReg->extents.y1;
if (PIXREGION_NAR(reg1) || PIXREGION_NAR(reg2))
newReg->extents.y1 = MAX(reg1->extents.y1, reg2->extents.y1);
newReg->extents.x2 = MIN(reg1->extents.x2, reg2->extents.x2);
newReg->extents.y2 = MIN(reg1->extents.y2, reg2->extents.y2);
- freeData(newReg);
+ FREE_DATA(newReg);
newReg->data = (region_data_type_t *)NULL;
}
else if (!reg2->data && SUBSUMES(®2->extents, ®1->extents))
pixman_set_extents(newReg);
}
- good(newReg);
+ GOOD(newReg);
return(TRUE);
}
/* Return TRUE if some overlap
* between reg1, reg2
*/
- good(reg1);
- good(reg2);
- good(newReg);
+ GOOD(reg1);
+ GOOD(reg2);
+ GOOD(newReg);
/* checks all the simple cases */
/*
newReg->extents.y1 = MIN(reg1->extents.y1, reg2->extents.y1);
newReg->extents.x2 = MAX(reg1->extents.x2, reg2->extents.x2);
newReg->extents.y2 = MAX(reg1->extents.y2, reg2->extents.y2);
- good(newReg);
+ GOOD(newReg);
return TRUE;
}
*overlap = FALSE;
if (!badreg->data)
{
- good(badreg);
+ GOOD(badreg);
return TRUE;
}
numRects = badreg->data->numRects;
{
if (PIXREGION_NAR(badreg))
return FALSE;
- good(badreg);
+ GOOD(badreg);
return TRUE;
}
if (badreg->extents.x1 < badreg->extents.x2)
{
if ((numRects) == 1)
{
- freeData(badreg);
+ FREE_DATA(badreg);
badreg->data = (region_data_type_t *) NULL;
}
else
{
DOWNSIZE(badreg, numRects);
}
- good(badreg);
+ GOOD(badreg);
return TRUE;
}
Coalesce(reg, rit->prevBand, rit->curBand);
if (reg->data->numRects == 1) /* keep unions happy below */
{
- freeData(reg);
+ FREE_DATA(reg);
reg->data = (region_data_type_t *)NULL;
}
}
reg->extents.x2 = hreg->extents.x2;
if (hreg->extents.y2 > reg->extents.y2)
reg->extents.y2 = hreg->extents.y2;
- freeData(hreg);
+ FREE_DATA(hreg);
}
numRI -= half;
if (!ret)
*badreg = ri[0].reg;
if (ri != stack_regions)
free(ri);
- good(badreg);
+ GOOD(badreg);
return ret;
bail:
for (i = 0; i < numRI; i++)
- freeData(&ri[i].reg);
+ FREE_DATA(&ri[i].reg);
if (ri != stack_regions)
free (ri);
{
int overlap; /* result ignored */
- good(regM);
- good(regS);
- good(regD);
+ GOOD(regM);
+ GOOD(regS);
+ GOOD(regD);
/* check for trivial rejects */
if (PIXREGION_NIL(regM) || PIXREGION_NIL(regS) ||
!EXTENTCHECK(®M->extents, ®S->extents))
}
else if (regM == regS)
{
- freeData(regD);
+ FREE_DATA(regD);
regD->extents.x2 = regD->extents.x1;
regD->extents.y2 = regD->extents.y1;
regD->data = pixman_region_emptyData;
* due to coalescing, so we have to examine fewer rectangles.
*/
pixman_set_extents(regD);
- good(regD);
+ GOOD(regD);
return TRUE;
}
* bounding box */
int overlap; /* result ignored */
- good(reg1);
- good(newReg);
+ GOOD(reg1);
+ GOOD(newReg);
/* check for trivial rejects */
if (PIXREGION_NIL(reg1) || !EXTENTCHECK(invRect, ®1->extents))
{
if (PIXREGION_NAR(reg1))
return pixman_break (newReg);
newReg->extents = *invRect;
- freeData(newReg);
+ FREE_DATA(newReg);
newReg->data = (region_data_type_t *)NULL;
return TRUE;
}
* due to coalescing, so we have to examine fewer rectangles.
*/
pixman_set_extents(newReg);
- good(newReg);
+ GOOD(newReg);
return TRUE;
}
int partIn, partOut;
int numRects;
- good(region);
+ GOOD(region);
numRects = PIXREGION_NUM_RECTS(region);
/* useful optimization */
if (!numRects || !EXTENTCHECK(®ion->extents, prect))
int nbox;
box_type_t * pbox;
- good(region);
+ GOOD(region);
region->extents.x1 = x1 = region->extents.x1 + x;
region->extents.y1 = y1 = region->extents.y1 + y;
region->extents.x2 = x2 = region->extents.x2 + x;
{
region->extents.x2 = region->extents.x1;
region->extents.y2 = region->extents.y1;
- freeData(region);
+ FREE_DATA(region);
region->data = pixman_region_emptyData;
return;
}
if (region->data->numRects == 1)
{
region->extents = *PIXREGION_BOXPTR(region);
- freeData(region);
+ FREE_DATA(region);
region->data = (region_data_type_t *)NULL;
}
else
PIXMAN_EXPORT void
PREFIX(_reset) (region_type_t *region, box_type_t *box)
{
- good(region);
+ GOOD(region);
assert(box->x1<=box->x2);
assert(box->y1<=box->y2);
region->extents = *box;
- freeData(region);
+ FREE_DATA(region);
region->data = (region_data_type_t *)NULL;
}
box_type_t *pbox, *pboxEnd;
int numRects;
- good(region);
+ GOOD(region);
numRects = PIXREGION_NUM_RECTS(region);
if (!numRects || !INBOX(®ion->extents, x, y))
return(FALSE);
PIXMAN_EXPORT int
PREFIX(_not_empty) (region_type_t * region)
{
- good(region);
+ GOOD(region);
return(!PIXREGION_NIL(region));
}
PIXMAN_EXPORT box_type_t *
PREFIX(_extents) (region_type_t * region)
{
- good(region);
+ GOOD(region);
return(®ion->extents);
}