summaryrefslogtreecommitdiffstats
path: root/gfx/cairo/fix-clip-copy.patch
diff options
context:
space:
mode:
Diffstat (limited to 'gfx/cairo/fix-clip-copy.patch')
-rw-r--r--gfx/cairo/fix-clip-copy.patch30
1 files changed, 30 insertions, 0 deletions
diff --git a/gfx/cairo/fix-clip-copy.patch b/gfx/cairo/fix-clip-copy.patch
new file mode 100644
index 000000000..c2c3b2fc8
--- /dev/null
+++ b/gfx/cairo/fix-clip-copy.patch
@@ -0,0 +1,30 @@
+commit f49a9740350d2f0d69ed59e913f0263a899cfb2a
+Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
+Date: Fri Jan 29 14:39:24 2010 -0500
+
+ Fix clip copy
+
+diff --git a/src/cairo-clip.c b/src/cairo-clip.c
+index 8d66a5f..6acbcff 100644
+--- a/src/cairo-clip.c
++++ b/src/cairo-clip.c
+@@ -280,13 +280,12 @@ cairo_clip_t *
+ _cairo_clip_init_copy (cairo_clip_t *clip, cairo_clip_t *other)
+ {
+ if (other != NULL) {
+- if (other->path == NULL) {
+- _cairo_clip_init (clip);
+- clip = NULL;
+- } else {
+- clip->all_clipped = other->all_clipped;
+- clip->path = _cairo_clip_path_reference (other->path);
+- }
++ clip->all_clipped = other->all_clipped;
++ clip->path = _cairo_clip_path_reference (other->path);
++
++ /* this guy is here because of the weird return semantics of _cairo_clip_init_copy */
++ if (!other->path)
++ return NULL;
+ } else {
+ _cairo_clip_init (clip);
+ }