[gimp] plug-ins: some cleanup in file-webp.
- From: Jehan <jehanp src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp] plug-ins: some cleanup in file-webp.
- Date: Fri, 1 Oct 2021 16:47:41 +0000 (UTC)
commit 2ddc2ab7be92cf262d57ad161d80b264e910c797
Author: Jehan <jehan girinstud io>
Date: Fri Oct 1 17:38:54 2021 +0200
plug-ins: some cleanup in file-webp.
- use g_file_peek_path() instead of g_file_get_path() in various places.
Less prone to memory management bugs (not forgetting to free in all
cases). Also it is often more efficient, especially for local files
where the _peek_ variant does not even need to allocate any memory as
path is already hanging around (and local files are the most common
use cases, I believe!).
- Also gets rid of one GFile creation with g_file_new_for_path() from
the path returned from another GFile! We can just use the same GFile
as it is not freed and perfectly usable.
plug-ins/file-webp/file-webp-load.c | 15 +--------------
plug-ins/file-webp/file-webp-save.c | 11 ++---------
2 files changed, 3 insertions(+), 23 deletions(-)
---
diff --git a/plug-ins/file-webp/file-webp-load.c b/plug-ins/file-webp/file-webp-load.c
index d66e9dfb55..a13d22b5f8 100644
--- a/plug-ins/file-webp/file-webp-load.c
+++ b/plug-ins/file-webp/file-webp-load.c
@@ -77,7 +77,6 @@ load_image (GFile *file,
gboolean interactive,
GError **error)
{
- gchar *filename;
uint8_t *indata = NULL;
gsize indatalen;
gint width;
@@ -92,15 +91,12 @@ load_image (GFile *file,
gboolean exif = FALSE;
gboolean xmp = FALSE;
- filename = g_file_get_path (file);
-
/* Attempt to read the file contents from disk */
- if (! g_file_get_contents (filename,
+ if (! g_file_get_contents (g_file_peek_path (file),
(gchar **) &indata,
&indatalen,
error))
{
- g_free (filename);
return NULL;
}
@@ -110,7 +106,6 @@ load_image (GFile *file,
g_set_error (error, G_FILE_ERROR, 0,
_("Invalid WebP file '%s'"),
gimp_file_get_utf8_name (file));
- g_free (filename);
return NULL;
}
@@ -120,7 +115,6 @@ load_image (GFile *file,
mux = WebPMuxCreate (&wp_data, 1);
if (! mux)
{
- g_free (filename);
return NULL;
}
@@ -166,7 +160,6 @@ load_image (GFile *file,
if (! outdata)
{
WebPMuxDelete (mux);
- g_free (filename);
return NULL;
}
@@ -198,7 +191,6 @@ load_image (GFile *file,
}
WebPMuxDelete (mux);
- g_free (filename);
return NULL;
}
@@ -258,7 +250,6 @@ load_image (GFile *file,
if (exif || xmp)
{
GimpMetadata *metadata;
- GFile *file;
if (exif)
{
@@ -274,7 +265,6 @@ load_image (GFile *file,
WebPMuxGetChunk (mux, "XMP ", &xmp);
}
- file = g_file_new_for_path (filename);
metadata = gimp_image_metadata_load_prepare (image, "image/webp",
file, NULL);
if (metadata)
@@ -288,15 +278,12 @@ load_image (GFile *file,
metadata, flags);
g_object_unref (metadata);
}
-
- g_object_unref (file);
}
WebPMuxDelete (mux);
gimp_image_set_file (image, file);
- g_free (filename);
if (profile)
g_object_unref (profile);
diff --git a/plug-ins/file-webp/file-webp-save.c b/plug-ins/file-webp/file-webp-save.c
index c95723c04f..a307264ae9 100644
--- a/plug-ins/file-webp/file-webp-save.c
+++ b/plug-ins/file-webp/file-webp-save.c
@@ -190,16 +190,12 @@ save_layer (GFile *file,
do
{
- gchar *filename;
-
/* Begin displaying export progress */
gimp_progress_init_printf (_("Saving '%s'"),
gimp_file_get_utf8_name (file));
/* Attempt to open the output file */
- filename = g_file_get_path (file);
- outfile = g_fopen (filename, "w+b");
- g_free (filename);
+ outfile = g_fopen (g_file_peek_path (file), "w+b");
if (! outfile)
{
@@ -586,7 +582,6 @@ save_animation (GFile *file,
do
{
- gchar *filename;
GList *list;
gint i;
@@ -595,9 +590,7 @@ save_animation (GFile *file,
gimp_file_get_utf8_name (file));
/* Attempt to open the output file */
- filename = g_file_get_path (file);
- outfile = g_fopen (filename, "wb");
- g_free (filename);
+ outfile = g_fopen (g_file_peek_path (file), "wb");
if (! outfile)
{
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]