[gimp] app: g_file_new_for_uri() return object not freed with g_object_unref().



commit cd0b2f61c01434a2d01afc143679958ec0aff1d0
Author: Jehan <jehan girinstud io>
Date:   Tue Aug 19 01:31:34 2014 +0200

    app: g_file_new_for_uri() return object not freed with g_object_unref().
    
    Non-freed GFile object when saving or exporting the first time, i.e.
    with default extensions.

 app/widgets/gimpfiledialog.c |    9 +++++++--
 1 files changed, 7 insertions(+), 2 deletions(-)
---
diff --git a/app/widgets/gimpfiledialog.c b/app/widgets/gimpfiledialog.c
index 8d2cae6..6631351 100644
--- a/app/widgets/gimpfiledialog.c
+++ b/app/widgets/gimpfiledialog.c
@@ -560,7 +560,9 @@ gimp_file_dialog_set_save_image (GimpFileDialog *dialog,
        */
       ext_file = gimp_image_get_file (image);
 
-      if (! ext_file)
+      if (ext_file)
+        g_object_ref (ext_file);
+      else
         ext_file = g_file_new_for_uri ("file:///we/only/care/about/extension.xcf");
     }
   else /* if (export) */
@@ -636,7 +638,9 @@ gimp_file_dialog_set_save_image (GimpFileDialog *dialog,
         ext_file = g_object_get_data (G_OBJECT (gimp),
                                       GIMP_FILE_EXPORT_LAST_FILE_KEY);
 
-      if (! ext_file)
+      if (ext_file)
+        g_object_ref (ext_file);
+      else
         ext_file = g_file_new_for_uri ("file:///we/only/care/about/extension.png");
     }
 
@@ -645,6 +649,7 @@ gimp_file_dialog_set_save_image (GimpFileDialog *dialog,
       GFile *tmp_file = file_utils_file_with_new_ext (name_file, ext_file);
       basename = g_path_get_basename (gimp_file_get_utf8_name (tmp_file));
       g_object_unref (tmp_file);
+      g_object_unref (ext_file);
     }
   else
     {


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