[gimp/gimp-2-10] plug-ins: properly free return values of gimp_image_get_layers()...



commit 6490a34e3ce35e299cb3ed3dea67df08d5fc60b1
Author: Jehan <jehan girinstud io>
Date:   Fri Jul 12 13:11:47 2019 +0200

    plug-ins: properly free return values of gimp_image_get_layers()...
    
    ... and gimp_item_get_children().
    I know plug-ins are shortlived. Still I don't like this!
    
    (cherry picked from commit 6d4a11a26114527893572c1538ab47a7613e7052)

 plug-ins/common/file-pdf-save.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)
---
diff --git a/plug-ins/common/file-pdf-save.c b/plug-ins/common/file-pdf-save.c
index aa2c98ccea..9cfe4d93c2 100644
--- a/plug-ins/common/file-pdf-save.c
+++ b/plug-ins/common/file-pdf-save.c
@@ -594,6 +594,7 @@ run (const gchar      *name,
               *nreturn_vals = 2;
 
               /* free the resources */
+              g_free (layers);
               cairo_surface_destroy (pdf_file);
               cairo_destroy (cr);
               fclose (fp);
@@ -605,6 +606,7 @@ run (const gchar      *name,
               return;
             }
         }
+      g_free (layers);
 
       /* We are done with this image - Show it!
        * Unless that's a multi-page to avoid blank page at the end
@@ -846,7 +848,7 @@ gui_single (void)
   gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (layers_as_pages_c),
                                 optimize.layers_as_pages);
   gtk_frame_set_label_widget (GTK_FRAME (frame), layers_as_pages_c);
-  gimp_image_get_layers (multi_page.images[0], &n_layers);
+  g_free (gimp_image_get_layers (multi_page.images[0], &n_layers));
 
   reverse_order_c = gtk_check_button_new_with_label (_("Reverse the pages order"));
   gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (reverse_order_c),
@@ -1689,8 +1691,12 @@ draw_layer (gint32       *layers,
         {
           if (! draw_layer (children, children_num, i,
                             cr, x_res, y_res, name, error))
-            return FALSE;
+            {
+              g_free (children);
+              return FALSE;
+            }
         }
+      g_free (children);
     }
   else
     {


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