From cbf741920b06279fbea82f5b839164a9511e0198 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Mon, 2 Sep 2019 08:29:04 +0200 Subject: pixbufutils: Escape file data only once --- gtk/tools/gdkpixbufutils.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/gtk/tools/gdkpixbufutils.c b/gtk/tools/gdkpixbufutils.c index 5127cb9e87..5f8c19bf87 100644 --- a/gtk/tools/gdkpixbufutils.c +++ b/gtk/tools/gdkpixbufutils.c @@ -132,8 +132,7 @@ _gdk_pixbuf_new_from_resource_scaled (const gchar *resource_path, } static GdkPixbuf * -load_symbolic_svg (const char *file_data, - gsize file_len, +load_symbolic_svg (const char *escaped_file_data, int width, int height, double scale, @@ -149,7 +148,6 @@ load_symbolic_svg (const char *file_data, GdkPixbuf *pixbuf; gchar *data; gchar *svg_width, *svg_height; - gchar *escaped_file_data; if (width == 0) width = icon_width * scale; @@ -159,8 +157,6 @@ load_symbolic_svg (const char *file_data, svg_width = g_strdup_printf ("%d", icon_width); svg_height = g_strdup_printf ("%d", icon_height); - escaped_file_data = g_base64_encode ((guchar *) file_data, file_len); - data = g_strconcat ("\n" "\n" "", NULL); - g_free (escaped_file_data); g_free (svg_width); g_free (svg_height); @@ -246,6 +241,7 @@ gtk_make_symbolic_pixbuf_from_data (const char *file_data, GdkPixbuf *pixbuf = NULL; int plane; int icon_width, icon_height; + char *escaped_file_data; /* Fetch size from the original icon */ { @@ -262,6 +258,8 @@ gtk_make_symbolic_pixbuf_from_data (const char *file_data, g_object_unref (reference); } + escaped_file_data = g_base64_encode ((guchar *) file_data, file_len); + for (plane = 0; plane < 3; plane++) { /* Here we render the svg with all colors solid, this should @@ -276,7 +274,7 @@ gtk_make_symbolic_pixbuf_from_data (const char *file_data, * channels, with the color of the fg being implicitly * the "rest", as all color fractions should add up to 1. */ - loaded = load_symbolic_svg (file_data, file_len, width, height, scale, + loaded = load_symbolic_svg (escaped_file_data, width, height, scale, icon_width, icon_height, g_string, @@ -303,6 +301,8 @@ gtk_make_symbolic_pixbuf_from_data (const char *file_data, g_object_unref (loaded); } + g_free (escaped_file_data); + return pixbuf; } -- cgit v1.2.1