summaryrefslogtreecommitdiff
path: root/src/cairo-clip.c
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2011-10-15 08:59:35 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2011-10-15 08:59:35 +0100
commitcc3f06a58a91bf52ca4f958c96ee1e598cdaa62d (patch)
tree03a89b3350f40f4465e8536f64ef93a6cc5a67c9 /src/cairo-clip.c
parent571a27b4fcfe11fec2b33c31525c353eb30c0ad7 (diff)
parent10ebda8698425a23f07b3062233500ec22ebc347 (diff)
downloadcairo-cc3f06a58a91bf52ca4f958c96ee1e598cdaa62d.tar.gz
Merge branch 'master' of git://cairographics.org/git/cairo
Diffstat (limited to 'src/cairo-clip.c')
-rw-r--r--src/cairo-clip.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/cairo-clip.c b/src/cairo-clip.c
index 10d30687f..d32bdec62 100644
--- a/src/cairo-clip.c
+++ b/src/cairo-clip.c
@@ -423,7 +423,7 @@ _cairo_clip_translate (cairo_clip_t *clip, int tx, int ty)
cairo_clip_path_t *clip_path;
if (clip == NULL || _cairo_clip_is_all_clipped (clip))
- return (cairo_clip_t *)clip;
+ return clip;
if (tx == 0 && ty == 0)
return clip;
@@ -532,6 +532,9 @@ _cairo_clip_transform (cairo_clip_t *clip, const cairo_matrix_t *m)
{
cairo_clip_t *copy;
+ if (clip == NULL || _cairo_clip_is_all_clipped (clip))
+ return clip;
+
if (_cairo_matrix_is_translation (m))
return _cairo_clip_translate (clip, m->x0, m->y0);
@@ -556,6 +559,7 @@ _cairo_clip_transform (cairo_clip_t *clip, const cairo_matrix_t *m)
if (clip->path)
copy = _cairo_clip_intersect_clip_path_transformed (copy, clip->path,m);
+ _cairo_clip_destroy (clip);
return copy;
}
@@ -809,4 +813,5 @@ void
_cairo_clip_reset_static_data (void)
{
_freed_pool_reset (&clip_path_pool);
+ _freed_pool_reset (&clip_pool);
}