[cairo-commit] src/cairo-hull.c

Chris Wilson ickle at kemper.freedesktop.org
Tue Apr 13 09:56:37 PDT 2010


 src/cairo-hull.c |    7 +++++++
 1 file changed, 7 insertions(+)

New commits:
commit 8afd4e4c3db53159d1e5b6f13d3355cb5fb1750b
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Tue Apr 13 17:52:19 2010 +0100

    hull: _cairo_hull_vertex_compare() return 0 for identical elements
    
    Andreas Falkenhahn reported a bizarre situation with some
    implementations of qsort that actually compare the same elements and
    require the comparator to return 0. So be it.
    
    Reported-by: Andreas Falkenhahn <andreas at airsoftsoftwair.de>

diff --git a/src/cairo-hull.c b/src/cairo-hull.c
index abd8dbf..15b6c00 100644
--- a/src/cairo-hull.c
+++ b/src/cairo-hull.c
@@ -95,6 +95,13 @@ _cairo_hull_vertex_compare (const void *av, const void *bv)
     cairo_hull_t *b = (cairo_hull_t *) bv;
     int ret;
 
+    /* Some libraries are reported to actually compare identical
+     * pointers and require the result to be 0. This is the crazy world we
+     * have to live in.
+     */
+    if (a == b)
+	return 0;
+
     ret = _cairo_slope_compare (&a->slope, &b->slope);
 
     /*


More information about the cairo-commit mailing list