emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] trunk r116883: src/image.c: Avoid partial load of SVG libr


From: Juanma Barranquero
Subject: [Emacs-diffs] trunk r116883: src/image.c: Avoid partial load of SVG libraries.
Date: Thu, 27 Mar 2014 01:17:59 +0000
User-agent: Bazaar (2.6b2)

------------------------------------------------------------
revno: 116883
revision-id: address@hidden
parent: address@hidden
committer: Juanma Barranquero <address@hidden>
branch nick: trunk
timestamp: Thu 2014-03-27 02:17:54 +0100
message:
  src/image.c: Avoid partial load of SVG libraries.
  
  (init_svg_functions): When loading SVG-related libraries,
  free already loaded libraries if the initialization fails.
  (rsvg_handle_set_size_callback): Remove declaration, unused.
modified:
  src/ChangeLog                  changelog-20091113204419-o5vbwnq5f7feedwu-1438
  src/image.c                    image.c-20091113204419-o5vbwnq5f7feedwu-2969
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog     2014-03-26 15:57:13 +0000
+++ b/src/ChangeLog     2014-03-27 01:17:54 +0000
@@ -1,3 +1,9 @@
+2014-03-27  Juanma Barranquero  <address@hidden>
+
+       * image.c (init_svg_functions): When loading SVG-related libraries,
+       free already loaded libraries if the initialization fails.
+       (rsvg_handle_set_size_callback): Remove declaration, unused.
+
 2014-03-26  Paul Eggert  <address@hidden>
 
        Fix core dump in char-equal (Bug#17011).

=== modified file 'src/image.c'
--- a/src/image.c       2014-03-26 10:21:55 +0000
+++ b/src/image.c       2014-03-27 01:17:54 +0000
@@ -8661,7 +8661,6 @@
 DEF_IMGLIB_FN (gboolean, rsvg_handle_write, (RsvgHandle *, const guchar *, 
gsize, GError **));
 DEF_IMGLIB_FN (gboolean, rsvg_handle_close, (RsvgHandle *, GError **));
 DEF_IMGLIB_FN (GdkPixbuf *, rsvg_handle_get_pixbuf, (RsvgHandle *));
-DEF_IMGLIB_FN (void *, rsvg_handle_set_size_callback, (RsvgHandle *, 
RsvgSizeFunc, gpointer, GDestroyNotify));
 
 DEF_IMGLIB_FN (int, gdk_pixbuf_get_width, (const GdkPixbuf *));
 DEF_IMGLIB_FN (int, gdk_pixbuf_get_height, (const GdkPixbuf *));
@@ -8683,13 +8682,18 @@
 static bool
 init_svg_functions (void)
 {
-  HMODULE library, gdklib, glib, gobject;
+  HMODULE library, gdklib = NULL, glib = NULL, gobject = NULL;
 
   if (!(glib = w32_delayed_load (Qglib))
       || !(gobject = w32_delayed_load (Qgobject))
       || !(gdklib = w32_delayed_load (Qgdk_pixbuf))
       || !(library = w32_delayed_load (Qsvg)))
-    return 0;
+    {
+      if (gdklib)  FreeLibrary (gdklib);
+      if (gobject) FreeLibrary (gobject);
+      if (glib)    FreeLibrary (glib);
+      return 0;
+    }
 
   LOAD_IMGLIB_FN (library, rsvg_handle_new);
   LOAD_IMGLIB_FN (library, rsvg_handle_get_dimensions);


reply via email to

[Prev in Thread] Current Thread [Next in Thread]