From 8afd4e4c3db53159d1e5b6f13d3355cb5fb1750b Mon Sep 17 00:00:00 2001 From: Chris Wilson Date: Tue, 13 Apr 2010 17:52:19 +0100 Subject: [PATCH] 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 --- src/cairo-hull.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/cairo-hull.c b/src/cairo-hull.c index abd8dbf13..15b6c00a7 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); /*