Update to version 2.58 of librsvg API (bug#74606)

* src/image.c (init_svg_functions): Declare new function.
(svg_load_image): Use it.
This commit is contained in:
Manuel Giraud 2024-12-01 13:50:05 +01:00 committed by Eli Zaretskii
parent 4c67f636c0
commit 748b19e56e

View file

@ -11655,7 +11655,11 @@ DEF_DLL_FN (void, rsvg_handle_get_dimensions,
DEF_DLL_FN (gboolean, rsvg_handle_set_stylesheet,
(RsvgHandle *, const guint8 *, gsize, GError **));
# endif
# if LIBRSVG_CHECK_VERSION (2, 58, 0)
DEF_DLL_FN (GdkPixbuf *, rsvg_handle_get_pixbuf_and_error, (RsvgHandle *, GError **));
# else
DEF_DLL_FN (GdkPixbuf *, rsvg_handle_get_pixbuf, (RsvgHandle *));
# endif
DEF_DLL_FN (int, gdk_pixbuf_get_width, (const GdkPixbuf *));
DEF_DLL_FN (int, gdk_pixbuf_get_height, (const GdkPixbuf *));
DEF_DLL_FN (guchar *, gdk_pixbuf_get_pixels, (const GdkPixbuf *));
@ -11714,8 +11718,11 @@ init_svg_functions (void)
#if LIBRSVG_CHECK_VERSION (2, 48, 0)
LOAD_DLL_FN (library, rsvg_handle_set_stylesheet);
#endif
#if LIBRSVG_CHECK_VERSION (2, 58, 0)
LOAD_DLL_FN (library, rsvg_handle_get_pixbuf_and_error);
#else
LOAD_DLL_FN (library, rsvg_handle_get_pixbuf);
#endif
LOAD_DLL_FN (gdklib, gdk_pixbuf_get_width);
LOAD_DLL_FN (gdklib, gdk_pixbuf_get_height);
LOAD_DLL_FN (gdklib, gdk_pixbuf_get_pixels);
@ -11760,7 +11767,11 @@ init_svg_functions (void)
# if LIBRSVG_CHECK_VERSION (2, 48, 0)
# undef rsvg_handle_set_stylesheet
# endif
# undef rsvg_handle_get_pixbuf
# if LIBRSVG_CHECK_VERSION (2, 58, 0)
# undef rsvg_handle_get_pixbuf_and_error
# else
# undef rsvg_handle_get_pixbuf
# endif
# if LIBRSVG_CHECK_VERSION (2, 32, 0)
# undef g_file_new_for_path
# undef g_memory_input_stream_new_from_data
@ -11801,7 +11812,11 @@ init_svg_functions (void)
# if LIBRSVG_CHECK_VERSION (2, 48, 0)
# define rsvg_handle_set_stylesheet fn_rsvg_handle_set_stylesheet
# endif
# define rsvg_handle_get_pixbuf fn_rsvg_handle_get_pixbuf
# if LIBRSVG_CHECK_VERSION (2, 58, 0)
# define rsvg_handle_get_pixbuf_and_error fn_rsvg_handle_get_pixbuf_and_error
# else
# define rsvg_handle_get_pixbuf fn_rsvg_handle_get_pixbuf
# endif
# if LIBRSVG_CHECK_VERSION (2, 32, 0)
# define g_file_new_for_path fn_g_file_new_for_path
# define g_memory_input_stream_new_from_data \
@ -12306,8 +12321,13 @@ svg_load_image (struct frame *f, struct image *img, char *contents,
/* We can now get a valid pixel buffer from the svg file, if all
went ok. */
#if LIBRSVG_CHECK_VERSION (2, 58, 0)
pixbuf = rsvg_handle_get_pixbuf_and_error (rsvg_handle, &err);
if (err) goto rsvg_error;
#else
pixbuf = rsvg_handle_get_pixbuf (rsvg_handle);
if (!pixbuf) goto rsvg_error;
#endif
g_object_unref (rsvg_handle);
xfree (wrapped_contents);