[gimp] plug-ins: various g_file_get_path() replaced by g_file_peek_path().



commit 27dea4f7f7d4c201d8e883df2b0880c4a6bc9ebf
Author: Jehan <jehan girinstud io>
Date:   Fri Oct 1 18:14:14 2021 +0200

    plug-ins: various g_file_get_path() replaced by g_file_peek_path().
    
    As explained in previous commits, the _peek_ call is advantageous
    because:
    - It is less bug-prone as we don't have to handle freeing the string. In
      all the cases I changed, I even spotted at least 2 cases where we were
      leaking a string (in file-mng, `temp_file_name` is never freed; and we
      were also leaking in an error case of gfig).
    - As a consequence of the previous point: simpler code with less lines.
    - In local file cases, the _peek_ variant does not even need to allocate
      an additional string.
    - In other case, if we query several times the path, it is allocated
      once and cached so it stays efficient.
    - When possible, working on the GFile rather than on a path string may
      be more robust. For instance I changed one g_unlink() into a
      g_file_delete(). Actually most reading/writing should be done with the
      GIO API when possible, but I didn't want to change too much code
      logics on this commit.

 plug-ins/common/file-jpegxl.c        | 55 +++++++++---------------------------
 plug-ins/common/file-mng.c           | 14 ++-------
 plug-ins/common/file-png.c           | 10 ++-----
 plug-ins/common/file-wmf.c           | 15 ++--------
 plug-ins/common/file-xmc.c           | 15 ++--------
 plug-ins/common/file-xpm.c           | 17 ++---------
 plug-ins/file-exr/file-exr.c         |  5 +---
 plug-ins/file-faxg3/faxg3.c          |  5 +---
 plug-ins/file-fits/fits.c            | 14 ++-------
 plug-ins/file-fli/fli-gimp.c         | 15 ++--------
 plug-ins/file-ico/ico-load.c         | 10 ++-----
 plug-ins/file-sgi/sgi.c              | 10 ++-----
 plug-ins/gfig/gfig.c                 |  9 ++----
 plug-ins/imagemap/imap_preferences.c | 10 ++-----
 plug-ins/screenshot/screenshot-osx.c |  8 ++----
 15 files changed, 45 insertions(+), 167 deletions(-)
---
diff --git a/plug-ins/common/file-jpegxl.c b/plug-ins/common/file-jpegxl.c
index bb8568725a..16300607c3 100644
--- a/plug-ins/common/file-jpegxl.c
+++ b/plug-ins/common/file-jpegxl.c
@@ -193,9 +193,7 @@ load_image (GFile        *file,
             GimpRunMode   runmode,
             GError      **error)
 {
-  gchar            *filename = g_file_get_path (file);
-
-  FILE             *inputFile = g_fopen (filename, "rb");
+  FILE             *inputFile = g_fopen (g_file_peek_path (file), "rb");
 
   gsize             inputFileSize;
   gpointer          memory;
@@ -220,8 +218,8 @@ load_image (GFile        *file,
   if (!inputFile)
     {
       g_set_error (error, G_FILE_ERROR, 0,
-                   "Cannot open file for read: %s\n", filename);
-      g_free (filename);
+                   "Cannot open file for read: %s\n",
+                   g_file_peek_path (file));
       return NULL;
     }
 
@@ -232,9 +230,9 @@ load_image (GFile        *file,
   if (inputFileSize < 1)
     {
       g_set_error (error, G_FILE_ERROR, 0,
-                   "File too small: %s\n", filename);
+                   "File too small: %s\n",
+                   g_file_peek_path (file));
       fclose (inputFile);
-      g_free (filename);
       return NULL;
     }
 
@@ -242,11 +240,10 @@ load_image (GFile        *file,
   if (fread (memory, 1, inputFileSize, inputFile) != inputFileSize)
     {
       g_set_error (error, G_FILE_ERROR, 0,
-                   "Failed to read %zu bytes: %s\n", inputFileSize, filename);
+                   "Failed to read %zu bytes: %s\n", inputFileSize,
+                   g_file_peek_path (file));
       fclose (inputFile);
       g_free (memory);
-
-      g_free (filename);
       return NULL;
     }
 
@@ -256,9 +253,9 @@ load_image (GFile        *file,
   if (signature != JXL_SIG_CODESTREAM && signature != JXL_SIG_CONTAINER)
     {
       g_set_error (error, G_FILE_ERROR, 0,
-                   "File %s is probably not in JXL format!\n", filename);
+                   "File %s is probably not in JXL format!\n",
+                   g_file_peek_path (file));
       g_free (memory);
-      g_free (filename);
       return NULL;
     }
 
@@ -268,7 +265,6 @@ load_image (GFile        *file,
       g_set_error (error, G_FILE_ERROR, 0,
                    "ERROR: JxlDecoderCreate failed");
       g_free (memory);
-      g_free (filename);
       return NULL;
     }
 
@@ -280,7 +276,6 @@ load_image (GFile        *file,
       JxlThreadParallelRunnerDestroy (runner);
       JxlDecoderDestroy (decoder);
       g_free (memory);
-      g_free (filename);
       return NULL;
     }
 
@@ -291,7 +286,6 @@ load_image (GFile        *file,
       JxlThreadParallelRunnerDestroy (runner);
       JxlDecoderDestroy (decoder);
       g_free (memory);
-      g_free (filename);
       return NULL;
     }
 
@@ -302,7 +296,6 @@ load_image (GFile        *file,
       JxlThreadParallelRunnerDestroy (runner);
       JxlDecoderDestroy (decoder);
       g_free (memory);
-      g_free (filename);
       return NULL;
     }
 
@@ -314,7 +307,6 @@ load_image (GFile        *file,
       JxlThreadParallelRunnerDestroy (runner);
       JxlDecoderDestroy (decoder);
       g_free (memory);
-      g_free (filename);
       return NULL;
     }
 
@@ -325,7 +317,6 @@ load_image (GFile        *file,
       JxlThreadParallelRunnerDestroy (runner);
       JxlDecoderDestroy (decoder);
       g_free (memory);
-      g_free (filename);
       return NULL;
     }
 
@@ -337,7 +328,6 @@ load_image (GFile        *file,
       JxlThreadParallelRunnerDestroy (runner);
       JxlDecoderDestroy (decoder);
       g_free (memory);
-      g_free (filename);
       return NULL;
     }
 
@@ -348,7 +338,6 @@ load_image (GFile        *file,
       JxlThreadParallelRunnerDestroy (runner);
       JxlDecoderDestroy (decoder);
       g_free (memory);
-      g_free (filename);
       return NULL;
     }
 
@@ -360,7 +349,6 @@ load_image (GFile        *file,
       JxlThreadParallelRunnerDestroy (runner);
       JxlDecoderDestroy (decoder);
       g_free (memory);
-      g_free (filename);
       return NULL;
     }
 
@@ -506,7 +494,6 @@ load_image (GFile        *file,
       JxlThreadParallelRunnerDestroy (runner);
       JxlDecoderDestroy (decoder);
       g_free (memory);
-      g_free (filename);
       return NULL;
     }
 
@@ -522,7 +509,6 @@ load_image (GFile        *file,
       JxlThreadParallelRunnerDestroy (runner);
       JxlDecoderDestroy (decoder);
       g_free (memory);
-      g_free (filename);
       return NULL;
     }
 
@@ -539,7 +525,6 @@ load_image (GFile        *file,
       JxlThreadParallelRunnerDestroy (runner);
       JxlDecoderDestroy (decoder);
       g_free (memory);
-      g_free (filename);
       return NULL;
     }
 
@@ -600,7 +585,6 @@ load_image (GFile        *file,
   JxlThreadParallelRunnerDestroy (runner);
   JxlDecoderDestroy (decoder);
   g_free (memory);
-  g_free (filename);
   return image;
 }
 
@@ -665,7 +649,6 @@ save_image (GFile                *file,
 
   GByteArray        *compressed;
 
-  gchar             *filename;
   FILE              *outfile;
   GeglBuffer        *buffer;
   GimpImageType      drawable_type;
@@ -688,8 +671,7 @@ save_image (GFile                *file,
   gint               speed = 7;
   gboolean           uses_original_profile = FALSE;
 
-  filename = g_file_get_path (file);
-  gimp_progress_init_printf ("Exporting '%s'.", filename);
+  gimp_progress_init_printf ("Exporting '%s'.", g_file_peek_path (file));
 
   g_object_get (config,
                 "lossless",              &lossless,
@@ -719,7 +701,6 @@ save_image (GFile                *file,
         {
           g_printerr ("%s: error getting the profile space: %s\n",
                       G_STRFUNC, (*error)->message);
-          g_free (filename);
           return FALSE;
         }
     }
@@ -801,7 +782,6 @@ save_image (GFile                *file,
         {
           g_object_unref (profile);
         }
-      g_free (filename);
       return FALSE;
       break;
     }
@@ -832,7 +812,6 @@ save_image (GFile                *file,
         {
           g_object_unref (profile);
         }
-      g_free (filename);
       return FALSE;
     }
 
@@ -848,7 +827,6 @@ save_image (GFile                *file,
         {
           g_object_unref (profile);
         }
-      g_free (filename);
       return FALSE;
     }
 
@@ -864,7 +842,6 @@ save_image (GFile                *file,
         {
           g_object_unref (profile);
         }
-      g_free (filename);
       return FALSE;
     }
 
@@ -885,7 +862,6 @@ save_image (GFile                *file,
           JxlThreadParallelRunnerDestroy (runner);
           JxlEncoderDestroy (encoder);
           g_free (picture_buffer);
-          g_free (filename);
           return FALSE;
         }
     }
@@ -905,7 +881,6 @@ save_image (GFile                *file,
           JxlThreadParallelRunnerDestroy (runner);
           JxlEncoderDestroy (encoder);
           g_free (picture_buffer);
-          g_free (filename);
           return FALSE;
         }
     }
@@ -939,7 +914,6 @@ save_image (GFile                *file,
       JxlThreadParallelRunnerDestroy (runner);
       JxlEncoderDestroy (encoder);
       g_free (picture_buffer);
-      g_free (filename);
       return FALSE;
     }
 
@@ -967,7 +941,6 @@ save_image (GFile                *file,
           JxlThreadParallelRunnerDestroy (runner);
           JxlEncoderDestroy (encoder);
           g_free (picture_buffer);
-          g_free (filename);
           return FALSE;
         }
     }
@@ -984,17 +957,16 @@ save_image (GFile                *file,
 
   if (compressed->len > 0)
     {
-      outfile = g_fopen (filename, "wb");
+      outfile = g_fopen (g_file_peek_path (file), "wb");
       if (!outfile)
         {
           g_set_error (error, G_FILE_ERROR, 0,
-                       "Could not open '%s' for writing!\n", filename);
-          g_free (filename);
+                       "Could not open '%s' for writing!\n",
+                       g_file_peek_path (file));
           g_byte_array_free (compressed, TRUE);
           return FALSE;
         }
 
-      g_free (filename);
       fwrite (compressed->data, 1, compressed->len, outfile);
       fclose (outfile);
 
@@ -1007,7 +979,6 @@ save_image (GFile                *file,
   g_set_error (error, G_FILE_ERROR, 0,
                "No data to write");
   g_byte_array_free (compressed, TRUE);
-  g_free (filename);
   return FALSE;
 }
 
diff --git a/plug-ins/common/file-mng.c b/plug-ins/common/file-mng.c
index f05925edb2..e052b47ef8 100644
--- a/plug-ins/common/file-mng.c
+++ b/plug-ins/common/file-mng.c
@@ -781,7 +781,6 @@ mng_save_image (GFile         *file,
                 GObject       *config,
                 GError       **error)
 {
-  gchar          *filename;
   gboolean        ret = FALSE;
   gint            rows, cols;
   volatile gint   i;
@@ -865,12 +864,8 @@ mng_save_image (GFile         *file,
         }
     }
 
-  filename = g_file_get_path (file);
-
   userdata = g_new0 (struct mnglib_userdata_t, 1);
-  userdata->fp = g_fopen (filename, "wb");
-
-  g_free (filename);
+  userdata->fp = g_fopen (g_file_peek_path (file), "wb");
 
   if (! userdata->fp)
     {
@@ -1064,7 +1059,6 @@ mng_save_image (GFile         *file,
       gchar           frame_mode;
       int             frame_delay;
       GFile          *temp_file;
-      gchar          *temp_file_name;
       png_structp     pp;
       png_infop       info;
       FILE           *infile, *outfile;
@@ -1220,9 +1214,7 @@ mng_save_image (GFile         *file,
           goto err3;
         }
 
-      temp_file_name = g_file_get_path (temp_file);
-
-      if ((outfile = g_fopen (temp_file_name, "wb")) == NULL)
+      if ((outfile = g_fopen (g_file_peek_path (temp_file), "wb")) == NULL)
         {
           g_set_error (error, G_FILE_ERROR, g_file_error_from_errno (errno),
                        _("Could not open '%s' for writing: %s"),
@@ -1404,7 +1396,7 @@ mng_save_image (GFile         *file,
 
       fclose (outfile);
 
-      infile = g_fopen (temp_file_name, "rb");
+      infile = g_fopen (g_file_peek_path (temp_file), "rb");
 
       if (! infile)
         {
diff --git a/plug-ins/common/file-png.c b/plug-ins/common/file-png.c
index 5260715d63..c885d11066 100644
--- a/plug-ins/common/file-png.c
+++ b/plug-ins/common/file-png.c
@@ -597,7 +597,6 @@ load_image (GFile        *file,
   GimpPrecision     image_precision;      /* Precision of image */
   GimpImageType     layer_type;           /* Type of drawable/layer */
   GimpColorProfile *profile      = NULL;  /* Color profile */
-  gchar            *filename;
   gchar            *profile_name = NULL;  /* Profile's name */
   gboolean          linear       = FALSE; /* Linear RGB */
   FILE             *fp;                   /* File pointer */
@@ -659,9 +658,7 @@ load_image (GFile        *file,
     gimp_progress_init_printf (_("Opening '%s'"),
                                gimp_file_get_utf8_name (file));
 
-  filename = g_file_get_path (file);
-  fp = g_fopen (filename, "rb");
-  g_free (filename);
+  fp = g_fopen (g_file_peek_path (file), "rb");
 
   if (fp == NULL)
     {
@@ -1311,7 +1308,6 @@ save_image (GFile        *file,
   GimpColorProfile *profile = NULL;   /* Color profile */
   gboolean          out_linear;       /* Save linear RGB */
   GeglBuffer       *buffer;           /* GEGL buffer for layer */
-  gchar            *filename;
   const Babl       *file_format = NULL; /* BABL format of file */
   const gchar      *encoding;
   const Babl       *space;
@@ -1499,9 +1495,7 @@ save_image (GFile        *file,
     gimp_progress_init_printf (_("Exporting '%s'"),
                                gimp_file_get_utf8_name (file));
 
-  filename = g_file_get_path (file);
-  fp = g_fopen (filename, "wb");
-  g_free (filename);
+  fp = g_fopen (g_file_peek_path (file), "wb");
 
   if (! fp)
     {
diff --git a/plug-ins/common/file-wmf.c b/plug-ins/common/file-wmf.c
index ba1409ae7c..0670cdc8cb 100644
--- a/plug-ins/common/file-wmf.c
+++ b/plug-ins/common/file-wmf.c
@@ -330,7 +330,6 @@ static gboolean
 load_wmf_size (GFile       *file,
                WmfLoadVals *vals)
 {
-  gchar          *filename;
   GMappedFile    *mapped;
   /* the bits we need to decode the WMF via libwmf2's GD layer  */
   wmf_error_t     err;
@@ -344,9 +343,7 @@ load_wmf_size (GFile       *file,
   gboolean        success = TRUE;
   char*           wmffontdirs[2] = { NULL, NULL };
 
-  filename = g_file_get_path (file);
-  mapped = g_mapped_file_new (filename, FALSE, NULL);
-  g_free (filename);
+  mapped = g_mapped_file_new (g_file_peek_path (file), FALSE, NULL);
 
   if (! mapped)
     return FALSE;
@@ -798,7 +795,6 @@ wmf_get_pixbuf (GFile *file,
                 gint  *width,
                 gint  *height)
 {
-  gchar          *filename;
   GMappedFile    *mapped;
   guchar         *pixels   = NULL;
 
@@ -814,9 +810,7 @@ wmf_get_pixbuf (GFile *file,
   gint           *gd_pixels = NULL;
   char*           wmffontdirs[2] = { NULL, NULL };
 
-  filename = g_file_get_path (file);
-  mapped = g_mapped_file_new (filename, FALSE, NULL);
-  g_free (filename);
+  mapped = g_mapped_file_new (g_file_peek_path (file), FALSE, NULL);
 
   if (! mapped)
     return NULL;
@@ -921,7 +915,6 @@ wmf_load_file (GFile   *file,
                guint   *height,
                GError **error)
 {
-  gchar          *filename;
   GMappedFile    *mapped;
   guchar         *pixels   = NULL;
 
@@ -937,9 +930,7 @@ wmf_load_file (GFile   *file,
 
   *width = *height = -1;
 
-  filename = g_file_get_path (file);
-  mapped = g_mapped_file_new (filename, FALSE, NULL);
-  g_free (filename);
+  mapped = g_mapped_file_new (g_file_peek_path (file), FALSE, NULL);
 
   if (! mapped)
     return NULL;
diff --git a/plug-ins/common/file-xmc.c b/plug-ins/common/file-xmc.c
index c4900c820e..97fc49505e 100644
--- a/plug-ins/common/file-xmc.c
+++ b/plug-ins/common/file-xmc.c
@@ -631,7 +631,6 @@ static GimpImage *
 load_image (GFile   *file,
             GError **error)
 {
-  gchar           *filename;
   FILE            *fp;
   GimpImage       *image;
   GimpLayer       *layer;
@@ -652,9 +651,7 @@ load_image (GFile   *file,
 
   /* Open the file and check it is a valid X cursor */
 
-  filename = g_file_get_path (file);
-  fp = g_fopen (filename, "rb");
-  g_free (filename);
+  fp = g_fopen (g_file_peek_path (file), "rb");
 
   if (fp == NULL)
     {
@@ -876,7 +873,6 @@ load_thumbnail (GFile   *file,
   guint32        diff;         /* difference between thumb_size and current size */
   guint32        min_diff = XCURSOR_IMAGE_MAX_SIZE; /* minimum value of diff */
   guint32        type;         /* chunk type */
-  gchar         *filename;
   FILE          *fp    = NULL;
   GimpImage     *image = NULL;
   GimpLayer     *layer;
@@ -896,9 +892,7 @@ load_thumbnail (GFile   *file,
   *thumb_height     = 0;
   *thumb_num_layers = 0;
 
-  filename = g_file_get_path (file);
-  fp = g_fopen (filename, "rb");
-  g_free (filename);
+  fp = g_fopen (g_file_peek_path (file), "rb");
 
   if (! fp)
     {
@@ -1330,7 +1324,6 @@ save_image (GFile         *file,
             GObject       *config,
             GError       **error)
 {
-  gchar           *filename;
   FILE            *fp;                     /* File pointer */
   gboolean         dimension_warn = FALSE; /* become TRUE if even one
                                             * of the dimensions of the
@@ -1385,9 +1378,7 @@ save_image (GFile         *file,
    */
   DM_XMC ("Open the file pointer.\n");
 
-  filename = g_file_get_path (file);
-  fp = g_fopen (filename, "wb");
-  g_free (filename);
+  fp = g_fopen (g_file_peek_path (file), "wb");
 
   if (! fp)
     {
diff --git a/plug-ins/common/file-xpm.c b/plug-ins/common/file-xpm.c
index 73d7d29b43..5f64661130 100644
--- a/plug-ins/common/file-xpm.c
+++ b/plug-ins/common/file-xpm.c
@@ -375,7 +375,6 @@ static GimpImage *
 load_image (GFile   *file,
             GError  **error)
 {
-  gchar     *filename;
   XpmImage   xpm_image;
   guchar    *cmap;
   GimpImage *image;
@@ -383,10 +382,8 @@ load_image (GFile   *file,
   gimp_progress_init_printf (_("Opening '%s'"),
                              gimp_file_get_utf8_name (file));
 
-  filename = g_file_get_path (file);
-
   /* read the raw file */
-  switch (XpmReadFileToXpmImage (filename, &xpm_image, NULL))
+  switch (XpmReadFileToXpmImage (g_file_peek_path (file), &xpm_image, NULL))
     {
     case XpmSuccess:
       break;
@@ -395,22 +392,17 @@ load_image (GFile   *file,
       g_set_error (error, G_FILE_ERROR, G_FILE_ERROR_FAILED,
                    _("Error opening file '%s'"),
                    gimp_file_get_utf8_name (file));
-      g_free (filename);
       return NULL;
 
     case XpmFileInvalid:
       g_set_error (error, G_FILE_ERROR, G_FILE_ERROR_FAILED,
                    "%s", _("XPM file invalid"));
-      g_free (filename);
       return NULL;
 
     default:
-      g_free (filename);
       return NULL;
     }
 
-  g_free (filename);
-
   cmap = parse_colors (&xpm_image);
 
   image = gimp_image_new (xpm_image.width,
@@ -649,7 +641,6 @@ save_image (GFile         *file,
   gboolean    alpha;
   gboolean    alpha_used = FALSE;
   XpmColor   *colormap;
-  gchar      *filename;
   XpmImage   *xpm_image;
   guint      *ibuff   = NULL;
   guchar     *buf;
@@ -847,10 +838,8 @@ save_image (GFile         *file,
   xpm_image->colorTable = colormap;
   xpm_image->data       = ibuff;
 
-  filename = g_file_get_path (file);
-
   /* do the save */
-  switch (XpmWriteFileFromXpmImage (filename, xpm_image, NULL))
+  switch (XpmWriteFileFromXpmImage (g_file_peek_path (file), xpm_image, NULL))
     {
     case XpmSuccess:
       success = TRUE;
@@ -871,8 +860,6 @@ save_image (GFile         *file,
       break;
     }
 
-  g_free (filename);
-
   g_object_unref (buffer);
   g_free (ibuff);
 
diff --git a/plug-ins/file-exr/file-exr.c b/plug-ins/file-exr/file-exr.c
index 1bfe737486..ee06d0b547 100644
--- a/plug-ins/file-exr/file-exr.c
+++ b/plug-ins/file-exr/file-exr.c
@@ -161,7 +161,6 @@ load_image (GFile        *file,
             gboolean      interactive,
             GError      **error)
 {
-  gchar            *filename;
   EXRLoader        *loader;
   gint              width;
   gint              height;
@@ -188,9 +187,7 @@ load_image (GFile        *file,
   gimp_progress_init_printf (_("Opening '%s'"),
                              gimp_file_get_utf8_name (file));
 
-  filename = g_file_get_path (file);
-  loader = exr_loader_new (filename);
-  g_free (filename);
+  loader = exr_loader_new (g_file_peek_path (file));
 
   if (! loader)
     {
diff --git a/plug-ins/file-faxg3/faxg3.c b/plug-ins/file-faxg3/faxg3.c
index a44a3ca117..44b0eff464 100644
--- a/plug-ins/file-faxg3/faxg3.c
+++ b/plug-ins/file-faxg3/faxg3.c
@@ -222,7 +222,6 @@ load_image (GFile   *file,
   int             hibit;
   struct g3_tree *p;
   int             nr_pels;
-  gchar          *filename;
   int             fd;
   int             color;
   int             i, rr, rsize;
@@ -248,9 +247,7 @@ load_image (GFile   *file,
 
   init_byte_tab (0, byte_tab);
 
-  filename = g_file_get_path (file);
-  fd = g_open (filename, O_RDONLY | _O_BINARY, 0);
-  g_free (filename);
+  fd = g_open (g_file_peek_path (file), O_RDONLY | _O_BINARY, 0);
 
   if (fd < 0)
     {
diff --git a/plug-ins/file-fits/fits.c b/plug-ins/file-fits/fits.c
index f86208ae7f..4e7218af02 100644
--- a/plug-ins/file-fits/fits.c
+++ b/plug-ins/file-fits/fits.c
@@ -364,7 +364,6 @@ load_image (GFile        *file,
   guint        picnum;
   gint         k, n_images, max_images, hdu_picnum;
   gint         compose;
-  gchar       *filename;
   FILE        *fp;
   FitsFile    *ifp;
   FitsHduList *hdu;
@@ -374,9 +373,7 @@ load_image (GFile        *file,
                 "compose", &compose_arg,
                 NULL);
 
-  filename = g_file_get_path (file);
-  fp = g_fopen (filename, "rb");
-  g_free (filename);
+  fp = g_fopen (g_file_peek_path (file), "rb");
 
   if (! fp)
     {
@@ -388,9 +385,7 @@ load_image (GFile        *file,
 
   fclose (fp);
 
-  filename = g_file_get_path (file);
-  ifp = fits_open (filename, "r");
-  g_free (filename);
+  ifp = fits_open (g_file_peek_path (file), "r");
 
   if (! ifp)
     {
@@ -479,7 +474,6 @@ save_image (GFile         *file,
             GimpDrawable  *drawable,
             GError       **error)
 {
-  gchar         *filename;
   FitsFile      *ofp;
   GimpImageType  drawable_type;
   gint           retval;
@@ -511,9 +505,7 @@ save_image (GFile         *file,
                              gimp_file_get_utf8_name (file));
 
   /* Open the output file. */
-  filename = g_file_get_path (file);
-  ofp = fits_open (filename, "w");
-  g_free (filename);
+  ofp = fits_open (g_file_peek_path (file), "w");
 
   if (! ofp)
     {
diff --git a/plug-ins/file-fli/fli-gimp.c b/plug-ins/file-fli/fli-gimp.c
index 58f3530f9b..3565e75b56 100644
--- a/plug-ins/file-fli/fli-gimp.c
+++ b/plug-ins/file-fli/fli-gimp.c
@@ -444,15 +444,12 @@ get_info (GFile   *file,
           gint32  *frames,
           GError **error)
 {
-  gchar        *filename;
   FILE         *fp;
   s_fli_header  fli_header;
 
   *width = 0; *height = 0; *frames = 0;
 
-  filename = g_file_get_path (file);
-  fp = g_fopen (filename ,"rb");
-  g_free (filename);
+  fp = g_fopen (g_file_peek_path (file),"rb");
 
   if (! fp)
     {
@@ -480,7 +477,6 @@ load_image (GFile    *file,
             GObject  *config,
             GError  **error)
 {
-  gchar        *filename;
   FILE         *fp;
   GeglBuffer   *buffer;
   GimpImage    *image;
@@ -500,9 +496,7 @@ load_image (GFile    *file,
   gimp_progress_init_printf (_("Opening '%s'"),
                              gimp_file_get_utf8_name (file));
 
-  filename = g_file_get_path (file);
-  fp = g_fopen (filename ,"rb");
-  g_free (filename);
+  fp = g_fopen (g_file_peek_path (file) ,"rb");
 
   if (! fp)
     {
@@ -641,7 +635,6 @@ save_image (GFile      *file,
             GObject    *config,
             GError    **error)
 {
-  gchar        *filename;
   FILE         *fp;
   GList        *framelist;
   GList        *iter;
@@ -776,9 +769,7 @@ save_image (GFile      *file,
   fli_header.aspect_y = 1;  /* ... as GIMP supports it. */
   fli_header.oframe1  = fli_header.oframe2 = 0; /* will be fixed during the write */
 
-  filename = g_file_get_path (file);
-  fp = g_fopen (filename , "wb");
-  g_free (filename);
+  fp = g_fopen (g_file_peek_path (file) , "wb");
 
   if (! fp)
     {
diff --git a/plug-ins/file-ico/ico-load.c b/plug-ins/file-ico/ico-load.c
index 4695d8fdef..62d8fdce20 100644
--- a/plug-ins/file-ico/ico-load.c
+++ b/plug-ins/file-ico/ico-load.c
@@ -653,7 +653,6 @@ GimpImage *
 ico_load_image (GFile        *file,
                 GError      **error)
 {
-  gchar       *filename;
   FILE        *fp;
   IcoLoadInfo *info;
   gint         max_width, max_height;
@@ -666,9 +665,7 @@ ico_load_image (GFile        *file,
   gimp_progress_init_printf (_("Opening '%s'"),
                              gimp_file_get_utf8_name (file));
 
-  filename = g_file_get_path (file);
-  fp = g_fopen (filename, "rb");
-  g_free (filename);
+  fp = g_fopen (g_file_peek_path (file), "rb");
 
   if (! fp)
     {
@@ -734,7 +731,6 @@ ico_load_thumbnail_image (GFile   *file,
                           gint    *height,
                           GError **error)
 {
-  gchar       *filename;
   FILE        *fp;
   IcoLoadInfo *info;
   GimpImage   *image;
@@ -748,9 +744,7 @@ ico_load_thumbnail_image (GFile   *file,
   gimp_progress_init_printf (_("Opening thumbnail for '%s'"),
                              gimp_file_get_utf8_name (file));
 
-  filename = g_file_get_path (file);
-  fp = g_fopen (filename, "rb");
-  g_free (filename);
+  fp = g_fopen (g_file_peek_path (file), "rb");
 
   if (! fp)
     {
diff --git a/plug-ins/file-sgi/sgi.c b/plug-ins/file-sgi/sgi.c
index bf8ac67b7a..2c5f96f25a 100644
--- a/plug-ins/file-sgi/sgi.c
+++ b/plug-ins/file-sgi/sgi.c
@@ -314,7 +314,6 @@ load_image (GFile   *file,
                  tile_height, /* Height of tile in GIMP */
                  count,       /* Count of rows to put in image */
                  bytes;       /* Number of channels to use */
-  gchar         *filename;
   sgi_t         *sgip;        /* File pointer */
   GimpImage     *image;       /* Image */
   GimpLayer     *layer;       /* Layer */
@@ -332,9 +331,7 @@ load_image (GFile   *file,
   gimp_progress_init_printf (_("Opening '%s'"),
                              gimp_file_get_utf8_name (file));
 
-  filename = g_file_get_path (file);
-  sgip = sgiOpen (filename, SGI_READ, 0, 0, 0, 0, 0);
-  g_free (filename);
+  sgip = sgiOpen (g_file_peek_path (file), SGI_READ, 0, 0, 0, 0, 0);
 
   if (! sgip)
     {
@@ -593,7 +590,6 @@ save_image (GFile        *file,
   gint         tile_height; /* Height of tile in GIMP */
   gint         count;       /* Count of rows to put in image */
   gint         zsize;       /* Number of channels in file */
-  gchar       *filename;
   sgi_t       *sgip;        /* File pointer */
   GeglBuffer  *buffer;      /* Buffer for layer */
   const Babl  *format;
@@ -649,10 +645,8 @@ save_image (GFile        *file,
   gimp_progress_init_printf (_("Exporting '%s'"),
                              gimp_file_get_utf8_name (file));
 
-  filename = g_file_get_path (file);
-  sgip = sgiOpen (filename, SGI_WRITE, compression, 1,
+  sgip = sgiOpen (g_file_peek_path (file), SGI_WRITE, compression, 1,
                   width, height, zsize);
-  g_free (filename);
 
   if (! sgip)
     {
diff --git a/plug-ins/gfig/gfig.c b/plug-ins/gfig/gfig.c
index 3188254f35..f564533930 100644
--- a/plug-ins/gfig/gfig.c
+++ b/plug-ins/gfig/gfig.c
@@ -793,7 +793,6 @@ GFigObj *
 gfig_load_from_parasite (void)
 {
   GFile        *file;
-  gchar        *fname;
   FILE         *fp;
   GimpParasite *parasite;
   const gchar  *parasite_data;
@@ -806,9 +805,8 @@ gfig_load_from_parasite (void)
     return NULL;
 
   file  = gimp_temp_file ("gfigtmp");
-  fname = g_file_get_path (file);
 
-  fp = g_fopen (fname, "wb");
+  fp = g_fopen (g_file_peek_path (file), "wb");
   if (! fp)
     {
       g_message (_("Error trying to open temporary file '%s' "
@@ -823,11 +821,10 @@ gfig_load_from_parasite (void)
 
   gimp_parasite_free (parasite);
 
-  gfig = gfig_load (fname, "(none)");
+  gfig = gfig_load (g_file_peek_path (file), "(none)");
 
-  g_unlink (fname);
+  g_file_delete (file, NULL, NULL);
 
-  g_free (fname);
   g_object_unref (file);
 
   return gfig;
diff --git a/plug-ins/imagemap/imap_preferences.c b/plug-ins/imagemap/imap_preferences.c
index 22942b94ec..b586c5ce71 100644
--- a/plug-ins/imagemap/imap_preferences.c
+++ b/plug-ins/imagemap/imap_preferences.c
@@ -170,13 +170,10 @@ preferences_load(PreferencesData_t *data)
   FILE *in;
   char buf[256];
   GFile *file;
-  gchar *filename;
 
   file = gimp_directory_file ("imagemaprc", NULL);
 
-  filename = g_file_get_path (file);
-  in = g_fopen (filename, "rb");
-  g_free (filename);
+  in = g_fopen (g_file_peek_path (file), "rb");
 
   g_object_unref (file);
 
@@ -203,14 +200,11 @@ preferences_save(PreferencesData_t *data)
 {
    FILE *out;
    GFile *file;
-   gchar *filename;
    ColorSelData_t *colors = &data->colors;
 
    file = gimp_directory_file ("imagemaprc", NULL);
 
-   filename = g_file_get_path (file);
-   out = g_fopen(filename, "wb");
-   g_free (filename);
+   out = g_fopen(g_file_peek_path (file), "wb");
 
    if (out)
      {
diff --git a/plug-ins/screenshot/screenshot-osx.c b/plug-ins/screenshot/screenshot-osx.c
index e587cff066..850bd12289 100644
--- a/plug-ins/screenshot/screenshot-osx.c
+++ b/plug-ins/screenshot/screenshot-osx.c
@@ -82,7 +82,6 @@ screenshot_osx_shoot (ScreenshotValues  *shootvals,
   const gchar *mode    = " ";
   const gchar *cursor  = " ";
   gchar       *delay   = NULL;
-  gchar       *filename;
   GFile       *tmpfile;
   gchar       *quoted;
   gchar       *command = NULL;
@@ -121,9 +120,8 @@ screenshot_osx_shoot (ScreenshotValues  *shootvals,
 
   delay = g_strdup_printf ("-T %i", shootvals->screenshot_delay);
 
-  tmpfile  = gimp_temp_file ("png");
-  filename = g_file_get_path (tmpfile);
-  quoted   = g_shell_quote (filename);
+  tmpfile = gimp_temp_file ("png");
+  quoted  = g_shell_quote (g_file_peek_path (tmpfile));
 
   command = g_strjoin (" ",
                        "/usr/sbin/screencapture",
@@ -146,14 +144,12 @@ screenshot_osx_shoot (ScreenshotValues  *shootvals,
       gimp_image_set_file (*image, g_file_new_for_uri ("screenshot.png"));
 
       g_file_delete (tmpfile, NULL, NULL);
-      g_free (filename);
       g_free (command);
 
       return GIMP_PDB_SUCCESS;
    }
 
   g_free (command);
-  g_free (filename);
 
   return GIMP_PDB_EXECUTION_ERROR;
 }


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