[gegl] gegl: check that the fallback of operation handlers exist.
- From: Jehan <jehanp src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gegl] gegl: check that the fallback of operation handlers exist.
- Date: Fri, 7 Jan 2022 21:12:42 +0000 (UTC)
commit 5d42b16d5ac5d5479adc589aba417c749be76e48
Author: Jehan <jehan girinstud io>
Date: Fri Jan 7 22:08:36 2022 +0100
gegl: check that the fallback of operation handlers exist.
The loader fallback in particular is "gegl:magick-load" which depends on
a runtime tool (`convert` from Image Magick) so gegl_has_operation()
would verify that the operation is actually available at runtime (since
previous commit). If unavailable, let's just raise a warning and not
call the fallback, which is better than calling it and raising weird
unavoidable errors.
gegl/operation/gegl-operation-handlers.c | 24 +++++++++++++++++++++---
1 file changed, 21 insertions(+), 3 deletions(-)
---
diff --git a/gegl/operation/gegl-operation-handlers.c b/gegl/operation/gegl-operation-handlers.c
index f347290b9..ea664db65 100644
--- a/gegl/operation/gegl-operation-handlers.c
+++ b/gegl/operation/gegl-operation-handlers.c
@@ -20,6 +20,7 @@
#include "config.h"
#include <glib.h>
+#include "gegl.h"
#include "gegl-operation-handlers.h"
#include "gegl-operation-handlers-private.h"
@@ -92,10 +93,27 @@ gegl_operation_handlers_get_util (GHashTable *handlers,
if (handler != NULL)
return handler;
- g_warning ("No %s for content type \"%s\", falling back to \"%s\"",
- handler_type, content_type, fallback);
+ if (fallback)
+ {
+ if (gegl_has_operation (fallback))
+ {
+ g_warning ("No %s for content type \"%s\", falling back to \"%s\"",
+ handler_type, content_type, fallback);
+ return fallback;
+ }
+ else
+ {
+ g_warning ("No %s for content type \"%s\". Fallback \"%s\" is not available.",
+ handler_type, content_type, fallback);
+ }
+ }
+ else
+ {
+ g_warning ("No %s for content type \"%s\"",
+ handler_type, content_type);
+ }
- return fallback;
+ return NULL;
}
const gchar *
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]