assert(region);
assert(region->data);
- if (region->data->size)
+ if ((region->data->size > 0) && (region->data != &empty_region))
free(region->data);
region->data = &empty_region;
dst->extents = src->extents;
- if (dst->data->size)
+ if ((dst->data->size > 0) && (dst->data != &empty_region))
free(dst->data);
- if (!src->data->size)
- {
+ if (src->data->size == 0)
dst->data = &empty_region;
- }
else
{
dst->data = allocateRegion(src->data->nbRects);
dstRect++;
}
- if ((src == dst) && (src->data->size))
+ if ((src == dst) && (src->data->size > 0) && (src->data != &empty_region))
free(src->data);
dstExtents->top = MIN(rect->top, srcExtents->top);
newItems->nbRects = usedRects;
newItems->size = sizeof(REGION16_DATA) + (usedRects * sizeof(RECTANGLE_16));
- if (dst->data->size)
+ if ((dst->data->size > 0) && (dst->data != &empty_region))
free(dst->data);
dst->data = realloc(newItems, newItems->size);
if (region->data)
{
- if (region->data->size)
+ if ((region->data->size > 0) && (region->data != &empty_region))
free(region->data);
region->data = NULL;