diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2011-10-15 08:59:35 +0100 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2011-10-15 08:59:35 +0100 |
commit | cc3f06a58a91bf52ca4f958c96ee1e598cdaa62d (patch) | |
tree | 03a89b3350f40f4465e8536f64ef93a6cc5a67c9 /src/cairo-clip.c | |
parent | 571a27b4fcfe11fec2b33c31525c353eb30c0ad7 (diff) | |
parent | 10ebda8698425a23f07b3062233500ec22ebc347 (diff) | |
download | cairo-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.c | 7 |
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); } |