summaryrefslogtreecommitdiff
path: root/src/cairo-clip.c
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2011-07-29 12:35:36 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2011-07-29 12:36:21 +0100
commitfb9ed9bb0d3a4d4ac71f5d472f63a04ffbc4c110 (patch)
tree2e52702a322b5f78eb6f27ddc1df64bf973ce0fa /src/cairo-clip.c
parent7c6e1b8db89420fa69ebd8d2ba12dde1aeb47ea8 (diff)
downloadcairo-fb9ed9bb0d3a4d4ac71f5d472f63a04ffbc4c110.tar.gz
clip: Fix clip-equal to handle one or the other being NULL/all-clipped
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'src/cairo-clip.c')
-rw-r--r--src/cairo-clip.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/cairo-clip.c b/src/cairo-clip.c
index b01093efb..4058879fd 100644
--- a/src/cairo-clip.c
+++ b/src/cairo-clip.c
@@ -346,6 +346,16 @@ _cairo_clip_equal (const cairo_clip_t *clip_a,
if (clip_a == clip_b)
return TRUE;
+ /* or just one of them? */
+ if (clip_a == NULL || clip_b == NULL ||
+ _cairo_clip_is_all_clipped (clip_a) ||
+ _cairo_clip_is_all_clipped (clip_b))
+ {
+ return FALSE;
+ }
+
+ /* We have a pair of normal clips, check their contents */
+
if (clip_a->num_boxes != clip_b->num_boxes)
return FALSE;