[gimp] app: replace gimp_parasite_data*() with gimp_parasite_get_data().



commit ee26a390494783c928174a427386caa6e01527e3
Author: Jehan <jehan girinstud io>
Date:   Fri Jan 29 23:52:03 2021 +0100

    app: replace gimp_parasite_data*() with gimp_parasite_get_data().

 app/core/gimpgrid.c                  |  2 +-
 app/core/gimpimage-color-profile.c   | 28 +++++++++++++++++-----------
 app/core/gimpimage.c                 | 11 +++++++----
 app/core/gimpparasitelist.c          | 10 ++++++----
 app/core/gimpsymmetry.c              |  9 ++++++---
 app/core/gimptemplate.c              |  8 ++++++--
 app/tests/test-xcf.c                 | 17 +++++++++++++----
 app/text/gimptext-parasite.c         | 14 +++++++++++---
 app/widgets/gimpimagecommenteditor.c |  7 +++++--
 app/xcf/xcf-load.c                   | 25 +++++++++++++++++--------
 app/xcf/xcf-save.c                   | 13 ++++++-------
 11 files changed, 95 insertions(+), 49 deletions(-)
---
diff --git a/app/core/gimpgrid.c b/app/core/gimpgrid.c
index 0a8fd0ecd3..e85df78377 100644
--- a/app/core/gimpgrid.c
+++ b/app/core/gimpgrid.c
@@ -325,7 +325,7 @@ gimp_grid_from_parasite (const GimpParasite *parasite)
   g_return_val_if_fail (strcmp (gimp_parasite_name (parasite),
                                 gimp_grid_parasite_name ()) == 0, NULL);
 
-  if (! gimp_parasite_data (parasite))
+  if (! gimp_parasite_get_data (parasite, NULL))
     {
       g_warning ("Empty grid parasite");
 
diff --git a/app/core/gimpimage-color-profile.c b/app/core/gimpimage-color-profile.c
index 96eeaf727d..311f40ddf5 100644
--- a/app/core/gimpimage-color-profile.c
+++ b/app/core/gimpimage-color-profile.c
@@ -184,6 +184,9 @@ gimp_image_validate_icc_parasite (GimpImage           *image,
                                   gboolean            *is_builtin,
                                   GError             **error)
 {
+  const guint8 *data;
+  guint32       data_size;
+
   g_return_val_if_fail (GIMP_IS_IMAGE (image), FALSE);
   g_return_val_if_fail (icc_parasite != NULL, FALSE);
   g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
@@ -206,11 +209,8 @@ gimp_image_validate_icc_parasite (GimpImage           *image,
       return FALSE;
     }
 
-  return gimp_image_validate_icc_profile (image,
-                                          gimp_parasite_data (icc_parasite),
-                                          gimp_parasite_data_size (icc_parasite),
-                                          is_builtin,
-                                          error);
+  data = gimp_parasite_get_data (icc_parasite, &data_size);
+  return gimp_image_validate_icc_profile (image, data, data_size, is_builtin, error);
 }
 
 const GimpParasite *
@@ -284,10 +284,15 @@ gimp_image_get_icc_profile (GimpImage *image,
 
   if (parasite)
     {
+      const guint8 *data;
+      guint32       data_size;
+
+      data = gimp_parasite_get_data (parasite, &data_size);
+
       if (length)
-        *length = gimp_parasite_data_size (parasite);
+        *length = (gsize) data_size;
 
-      return gimp_parasite_data (parasite);
+      return data;
     }
 
   if (length)
@@ -807,12 +812,13 @@ _gimp_image_update_color_profile (GimpImage          *image,
 
   if (icc_parasite)
     {
-      GError *error = NULL;
+      GError       *error = NULL;
+      const guint8 *data;
+      guint32       data_size;
 
+      data = gimp_parasite_get_data (icc_parasite, &data_size);
       private->color_profile =
-        gimp_color_profile_new_from_icc_profile (gimp_parasite_data (icc_parasite),
-                                                 gimp_parasite_data_size (icc_parasite),
-                                                 NULL);
+        gimp_color_profile_new_from_icc_profile (data, data_size, NULL);
 
       private->layer_space =
         gimp_color_profile_get_space (private->color_profile,
diff --git a/app/core/gimpimage.c b/app/core/gimpimage.c
index 818ed949da..7ac19ebbdf 100644
--- a/app/core/gimpimage.c
+++ b/app/core/gimpimage.c
@@ -4007,10 +4007,11 @@ gimp_image_parasite_validate (GimpImage           *image,
     }
   else if (strcmp (name, "gimp-comment") == 0)
     {
-      const gchar *data   = gimp_parasite_data (parasite);
-      gssize       length = gimp_parasite_data_size (parasite);
+      const gchar *data;
+      guint32      length;
       gboolean     valid  = FALSE;
 
+      data = gimp_parasite_get_data (parasite, &length);
       if (length > 0)
         {
           if (data[length - 1] == '\0')
@@ -4052,10 +4053,12 @@ gimp_image_parasite_attach (GimpImage          *image,
     {
       GimpColorProfile *profile;
       GimpColorProfile *builtin;
+      const guint8     *parasite_data;
+      guint32           parasite_length;
 
+      parasite_data = gimp_parasite_get_data (parasite, &parasite_length);
       profile =
-        gimp_color_profile_new_from_icc_profile (gimp_parasite_data (parasite),
-                                                 gimp_parasite_data_size (parasite),
+        gimp_color_profile_new_from_icc_profile (parasite_data, parasite_length,
                                                  NULL);
       builtin = gimp_image_get_builtin_color_profile (image);
 
diff --git a/app/core/gimpparasitelist.c b/app/core/gimpparasitelist.c
index e71e711c60..08c36d7fc8 100644
--- a/app/core/gimpparasitelist.c
+++ b/app/core/gimpparasitelist.c
@@ -405,19 +405,21 @@ parasite_serialize (const gchar      *key,
                     GimpParasite     *parasite,
                     GimpConfigWriter *writer)
 {
+  const guint8 *parasite_contents;
+  guint32       parasite_size;
+
   if (! gimp_parasite_is_persistent (parasite))
     return;
 
   gimp_config_writer_open (writer, parasite_symbol);
 
+  parasite_contents = gimp_parasite_get_data (parasite, &parasite_size);
   gimp_config_writer_printf (writer, "\"%s\" %lu %lu",
                              gimp_parasite_name (parasite),
                              gimp_parasite_flags (parasite),
-                             gimp_parasite_data_size (parasite));
+                             (long unsigned int) parasite_size);
 
-  gimp_config_writer_data (writer,
-                           gimp_parasite_data_size (parasite),
-                           gimp_parasite_data (parasite));
+  gimp_config_writer_data (writer, parasite_size, parasite_contents);
 
   gimp_config_writer_close (writer);
   gimp_config_writer_linefeed (writer);
diff --git a/app/core/gimpsymmetry.c b/app/core/gimpsymmetry.c
index 1b9e1cb44a..88be0744b9 100644
--- a/app/core/gimpsymmetry.c
+++ b/app/core/gimpsymmetry.c
@@ -521,6 +521,8 @@ gimp_symmetry_from_parasite (const GimpParasite *parasite,
 {
   GimpSymmetry *symmetry;
   gchar        *parasite_name;
+  gchar        *parasite_contents;
+  guint32       parasite_size;
   GError       *error = NULL;
 
   parasite_name = gimp_symmetry_parasite_name (type);
@@ -530,7 +532,8 @@ gimp_symmetry_from_parasite (const GimpParasite *parasite,
                                 parasite_name) == 0,
                         NULL);
 
-  if (! gimp_parasite_data (parasite))
+  parasite_contents = (gchar *) gimp_parasite_get_data (parasite, &parasite_size);
+  if (! parasite_contents)
     {
       g_warning ("Empty symmetry parasite \"%s\"", parasite_name);
 
@@ -549,9 +552,9 @@ gimp_symmetry_from_parasite (const GimpParasite *parasite,
                                           &error))
     {
       g_printerr ("Failed to deserialize symmetry parasite: %s\n"
-                  "\t- parasite name: %s\n\t- parasite data: %s\n",
+                  "\t- parasite name: %s\n\t- parasite data: %.*s\n",
                   error->message, parasite_name,
-                  (gchar *) gimp_parasite_data (parasite));
+                  parasite_size, parasite_contents);
       g_error_free (error);
 
       g_object_unref (symmetry);
diff --git a/app/core/gimptemplate.c b/app/core/gimptemplate.c
index f3ff2e6e09..71a75ff578 100644
--- a/app/core/gimptemplate.c
+++ b/app/core/gimptemplate.c
@@ -471,8 +471,12 @@ gimp_template_set_from_image (GimpTemplate *template,
 
   parasite =  gimp_image_parasite_find (image, "gimp-comment");
   if (parasite)
-    comment = g_strndup (gimp_parasite_data (parasite),
-                         gimp_parasite_data_size (parasite));
+    {
+      guint32 parasite_size;
+
+      comment = (gchar *) gimp_parasite_get_data (parasite, &parasite_size);
+      comment = g_strndup (comment, parasite_size);
+    }
 
   g_object_set (template,
                 "width",           gimp_image_get_width (image),
diff --git a/app/tests/test-xcf.c b/app/tests/test-xcf.c
index e665595790..0063ad0215 100644
--- a/app/tests/test-xcf.c
+++ b/app/tests/test-xcf.c
@@ -730,6 +730,8 @@ gimp_assert_mainimage (GimpImage *image,
                        gboolean   use_gimp_2_8_features)
 {
   const GimpParasite *parasite               = NULL;
+  gchar              *parasite_data          = NULL;
+  guint32             parasite_size          = -1;
   GimpLayer          *layer                  = NULL;
   GList              *iter                   = NULL;
   GimpGuide          *guide                  = NULL;
@@ -873,20 +875,27 @@ gimp_assert_mainimage (GimpImage *image,
   /* Parasites */
   parasite = gimp_image_parasite_find (image,
                                        GIMP_MAINIMAGE_PARASITE_NAME);
-  g_assert_cmpint (gimp_parasite_data_size (parasite),
+  parasite_data = (gchar *) gimp_parasite_get_data (parasite, &parasite_size);
+  parasite_data = g_strndup (parasite_data, parasite_size);
+  g_assert_cmpint (parasite_size,
                    ==,
                    GIMP_MAINIMAGE_PARASITE_SIZE);
-  g_assert_cmpstr (gimp_parasite_data (parasite),
+  g_assert_cmpstr (parasite_data,
                    ==,
                    GIMP_MAINIMAGE_PARASITE_DATA);
+  g_free (parasite_data);
+
   parasite = gimp_image_parasite_find (image,
                                        "gimp-comment");
-  g_assert_cmpint (gimp_parasite_data_size (parasite),
+  parasite_data = (gchar *) gimp_parasite_get_data (parasite, &parasite_size);
+  parasite_data = g_strndup (parasite_data, parasite_size);
+  g_assert_cmpint (parasite_size,
                    ==,
                    strlen (GIMP_MAINIMAGE_COMMENT) + 1);
-  g_assert_cmpstr (gimp_parasite_data (parasite),
+  g_assert_cmpstr (parasite_data,
                    ==,
                    GIMP_MAINIMAGE_COMMENT);
+  g_free (parasite_data);
 
   /* Unit */
   g_assert_cmpint (gimp_image_get_unit (image),
diff --git a/app/text/gimptext-parasite.c b/app/text/gimptext-parasite.c
index b07e66a53c..57eb8fcddd 100644
--- a/app/text/gimptext-parasite.c
+++ b/app/text/gimptext-parasite.c
@@ -68,6 +68,8 @@ gimp_text_from_parasite (const GimpParasite  *parasite,
                          GError             **error)
 {
   GimpText *text;
+  gchar    *parasite_data;
+  guint32   parasite_data_size;
 
   g_return_val_if_fail (parasite != NULL, NULL);
   g_return_val_if_fail (strcmp (gimp_parasite_name (parasite),
@@ -76,12 +78,15 @@ gimp_text_from_parasite (const GimpParasite  *parasite,
 
   text = g_object_new (GIMP_TYPE_TEXT, NULL);
 
-  if (gimp_parasite_data (parasite))
+  parasite_data = (gchar *) gimp_parasite_get_data (parasite, &parasite_data_size);
+  if (parasite_data)
     {
+      parasite_data = g_strndup (parasite_data, parasite_data_size);
       gimp_config_deserialize_parasite (GIMP_CONFIG (text),
                                         parasite,
                                         NULL,
                                         error);
+      g_free (parasite_data);
     }
   else
     {
@@ -122,9 +127,10 @@ gimp_text_from_gdyntext_parasite (const GimpParasite *parasite)
 {
   GimpText               *retval = NULL;
   GimpTextJustification   justify;
-  const gchar            *str;
+  gchar                  *str;
   gchar                  *text = NULL;
   gchar                 **params;
+  guint32                 parasite_data_size;
   gboolean                antialias;
   gdouble                 spacing;
   GimpRGB                 rgb;
@@ -136,7 +142,8 @@ gimp_text_from_gdyntext_parasite (const GimpParasite *parasite)
                                 gimp_text_gdyntext_parasite_name ()) == 0,
                         NULL);
 
-  str = gimp_parasite_data (parasite);
+  str = (gchar *) gimp_parasite_get_data (parasite, &parasite_data_size);
+  str = g_strndup (str, parasite_data_size);
   g_return_val_if_fail (str != NULL, NULL);
 
   if (! g_str_has_prefix (str, "GDT10{"))  /*  magic value  */
@@ -185,6 +192,7 @@ gimp_text_from_gdyntext_parasite (const GimpParasite *parasite)
   gimp_text_set_font_from_xlfd (GIMP_TEXT (retval), params[XLFD]);
 
  cleanup:
+  g_free (str);
   g_free (text);
   g_strfreev (params);
 
diff --git a/app/widgets/gimpimagecommenteditor.c b/app/widgets/gimpimagecommenteditor.c
index 490ba567d4..d796d739e0 100644
--- a/app/widgets/gimpimagecommenteditor.c
+++ b/app/widgets/gimpimagecommenteditor.c
@@ -159,8 +159,11 @@ gimp_image_comment_editor_update (GimpImageParasiteView *view)
 
   if (parasite)
     {
-      gchar *text = g_strndup (gimp_parasite_data (parasite),
-                               gimp_parasite_data_size (parasite));
+      gchar   *text;
+      guint32  text_size;
+
+      text = (gchar *) gimp_parasite_get_data (parasite, &text_size);
+      text = g_strndup (text, text_size);
 
       if (! g_utf8_validate (text, -1, NULL))
         {
diff --git a/app/xcf/xcf-load.c b/app/xcf/xcf-load.c
index 38717828d8..462ae8ac1e 100644
--- a/app/xcf/xcf-load.c
+++ b/app/xcf/xcf-load.c
@@ -281,12 +281,16 @@ xcf_load_image (Gimp     *gimp,
     {
       GimpImagePrivate *private  = GIMP_IMAGE_GET_PRIVATE (image);
       GimpMetadata     *metadata = NULL;
-      const gchar      *meta_string;
-
-      meta_string = (gchar *) gimp_parasite_data (parasite);
+      gchar            *meta_string;
+      guint32           parasite_data_size;
 
+      meta_string = (gchar *) gimp_parasite_get_data (parasite, &parasite_data_size);
       if (meta_string)
-        metadata = gimp_metadata_deserialize (meta_string);
+        {
+          meta_string = g_strndup (meta_string, parasite_data_size);
+          metadata = gimp_metadata_deserialize (meta_string);
+          g_free (meta_string);
+        }
 
       if (metadata)
         {
@@ -350,6 +354,10 @@ xcf_load_image (Gimp     *gimp,
         {
           GimpMetadata *metadata = gimp_image_get_metadata (image);
           GError       *my_error = NULL;
+          const guchar *parasite_data;
+          guint32       parasite_data_size;
+
+          parasite_data = (const guchar *) gimp_parasite_get_data (parasite, &parasite_data_size);
 
           if (metadata)
             g_object_ref (metadata);
@@ -357,8 +365,7 @@ xcf_load_image (Gimp     *gimp,
             metadata = gimp_metadata_new ();
 
           if (! gimp_metadata_set_from_exif (metadata,
-                                             gimp_parasite_data (parasite),
-                                             gimp_parasite_data_size (parasite),
+                                             parasite_data, parasite_data_size,
                                              &my_error))
             {
               gimp_message (gimp, G_OBJECT (info->progress),
@@ -386,8 +393,10 @@ xcf_load_image (Gimp     *gimp,
   if (parasite)
     {
       GimpImagePrivate *private    = GIMP_IMAGE_GET_PRIVATE (image);
-      const gchar      *xmp_data   = gimp_parasite_data (parasite);
-      gint              xmp_length = gimp_parasite_data_size (parasite);
+      const gchar      *xmp_data;
+      guint32           xmp_length;
+
+      xmp_data = (gchar *) gimp_parasite_get_data (parasite, &xmp_length);
 
       if (has_metadata)
         {
diff --git a/app/xcf/xcf-save.c b/app/xcf/xcf-save.c
index e369d0e5d2..da3b5d3da5 100644
--- a/app/xcf/xcf-save.c
+++ b/app/xcf/xcf-save.c
@@ -1950,9 +1950,10 @@ xcf_save_parasite (XcfInfo       *info,
 {
   if (gimp_parasite_is_persistent (parasite))
     {
-      guint32      value;
-      const gchar *string;
-      GError      *tmp_error = NULL;
+      guint32        value;
+      const gchar   *string;
+      GError        *tmp_error = NULL;
+      gconstpointer  parasite_data;
 
       string = gimp_parasite_name (parasite);
       xcf_write_string_check_error (info, (gchar **) &string, 1);
@@ -1960,12 +1961,10 @@ xcf_save_parasite (XcfInfo       *info,
       value = gimp_parasite_flags (parasite);
       xcf_write_int32_check_error (info, &value, 1);
 
-      value = gimp_parasite_data_size (parasite);
+      parasite_data = gimp_parasite_get_data (parasite, &value);
       xcf_write_int32_check_error (info, &value, 1);
 
-      xcf_write_int8_check_error (info,
-                                  gimp_parasite_data (parasite),
-                                  gimp_parasite_data_size (parasite));
+      xcf_write_int8_check_error (info, parasite_data, value);
     }
 
   return TRUE;


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