We should always have at least a C combiner available, so we never
expect the search to fail. If it does, emit an error and return a
dummy function.

Signed-off-by: Chris Wilson <ch...@chris-wilson.co.uk>
---
 pixman/pixman-general.c        |    3 ---
 pixman/pixman-implementation.c |   14 +++++++++++++-
 2 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/pixman/pixman-general.c b/pixman/pixman-general.c
index f175d77..93a1b9a 100644
--- a/pixman/pixman-general.c
+++ b/pixman/pixman-general.c
@@ -188,9 +188,6 @@ general_composite_rect  (pixman_implementation_t *imp,
     compose = _pixman_implementation_lookup_combiner (
        imp->toplevel, op, component_alpha, narrow);
 
-    if (!compose)
-       return;
-
     for (i = 0; i < height; ++i)
     {
        uint32_t *s, *m, *d;
diff --git a/pixman/pixman-implementation.c b/pixman/pixman-implementation.c
index 05cb5ea..c0a6436 100644
--- a/pixman/pixman-implementation.c
+++ b/pixman/pixman-implementation.c
@@ -172,6 +172,16 @@ update_cache:
     }
 }
 
+static void
+dummy_combine (pixman_implementation_t *imp,
+              pixman_op_t              op,
+              uint32_t *               pd,
+              const uint32_t *         ps,
+              const uint32_t *         pm,
+              int                      w)
+{
+}
+
 pixman_combine_32_func_t
 _pixman_implementation_lookup_combiner (pixman_implementation_t *imp,
                                        pixman_op_t              op,
@@ -207,7 +217,9 @@ _pixman_implementation_lookup_combiner 
(pixman_implementation_t *imp,
        imp = imp->fallback;
     }
 
-    return NULL;
+    /* We should never reach this point */
+    _pixman_log_error (FUNC, "No known combine function\n");
+    return dummy_combine;
 }
 
 pixman_bool_t
-- 
1.7.10.4

_______________________________________________
Pixman mailing list
Pixman@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pixman

Reply via email to