[gimp] libgimp: don't leak the temp callback name in the data select impls
- From: Michael Natterer <mitch src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp] libgimp: don't leak the temp callback name in the data select impls
- Date: Sun, 4 Aug 2019 16:04:52 +0000 (UTC)
commit d34bc03229211264ecd1cf8d29a478c332c9856b
Author: Michael Natterer <mitch gimp org>
Date: Sun Aug 4 18:04:18 2019 +0200
libgimp: don't leak the temp callback name in the data select impls
libgimp/gimpbrushselect.c | 11 ++++++++---
libgimp/gimpfontselect.c | 22 ++++++++++++++--------
libgimp/gimpgradientselect.c | 27 ++++++++++++++++-----------
libgimp/gimppaletteselect.c | 23 ++++++++++++++---------
libgimp/gimppatternselect.c | 31 ++++++++++++++++++-------------
5 files changed, 70 insertions(+), 44 deletions(-)
---
diff --git a/libgimp/gimpbrushselect.c b/libgimp/gimpbrushselect.c
index 0db5389664..16fad6d094 100644
--- a/libgimp/gimpbrushselect.c
+++ b/libgimp/gimpbrushselect.c
@@ -207,7 +207,8 @@ gimp_brush_select_new (const gchar *title,
(GDestroyNotify) gimp_brush_data_free);
}
- g_hash_table_insert (gimp_brush_select_ht, brush_callback,
+ g_hash_table_insert (gimp_brush_select_ht,
+ g_strdup (brush_callback),
brush_data);
}
@@ -268,7 +269,10 @@ gimp_brush_data_free (GimpBrushData *data)
g_source_remove (data->idle_id);
if (data->brush_callback)
- gimp_brushes_close_popup (data->brush_callback);
+ {
+ gimp_brushes_close_popup (data->brush_callback);
+ g_free (data->brush_callback);
+ }
g_free (data->brush_name);
g_free (data->brush_mask_data);
@@ -370,7 +374,8 @@ gimp_temp_brush_run_idle (GimpBrushData *brush_data)
brush_data->brush_callback = NULL;
gimp_brush_select_destroy (brush_callback);
+ g_free (brush_callback);
}
- return FALSE;
+ return G_SOURCE_REMOVE;
}
diff --git a/libgimp/gimpfontselect.c b/libgimp/gimpfontselect.c
index ffb1123860..07a782576d 100644
--- a/libgimp/gimpfontselect.c
+++ b/libgimp/gimpfontselect.c
@@ -106,11 +106,11 @@ gimp_font_select_new (const gchar *title,
else
{
static const GimpParamDef args[] =
- {
- { GIMP_PDB_STRING, "str", "String" },
- { GIMP_PDB_INT32, "dialog status", "If the dialog was closing "
- "[0 = No, 1 = Yes]" }
- };
+ {
+ { GIMP_PDB_STRING, "str", "String" },
+ { GIMP_PDB_INT32, "dialog status", "If the dialog was closing "
+ "[0 = No, 1 = Yes]" }
+ };
gimp_install_temp_proc (font_callback,
"Temporary font popup callback procedure",
@@ -146,7 +146,9 @@ gimp_font_select_new (const gchar *title,
(GDestroyNotify) gimp_font_data_free);
}
- g_hash_table_insert (gimp_font_select_ht, font_callback, font_data);
+ g_hash_table_insert (gimp_font_select_ht,
+ g_strdup (font_callback),
+ font_data);
}
return font_callback;
@@ -208,7 +210,10 @@ gimp_font_data_free (GimpFontData *data)
g_free (data->font_name);
if (data->font_callback)
- gimp_fonts_close_popup (data->font_callback);
+ {
+ gimp_fonts_close_popup (data->font_callback);
+ g_free (data->font_callback);
+ }
if (data->data_destroy)
data->data_destroy (data->data);
@@ -286,7 +291,8 @@ gimp_temp_font_run_idle (GimpFontData *font_data)
font_data->font_callback = NULL;
gimp_font_select_destroy (font_callback);
+ g_free (font_callback);
}
- return FALSE;
+ return G_SOURCE_REMOVE;
}
diff --git a/libgimp/gimpgradientselect.c b/libgimp/gimpgradientselect.c
index 7a7ac5960a..92353f4d36 100644
--- a/libgimp/gimpgradientselect.c
+++ b/libgimp/gimpgradientselect.c
@@ -68,7 +68,7 @@ gimp_gradient_select_new (const gchar *title,
gpointer data,
GDestroyNotify data_destroy)
{
- GimpPlugIn *plug_in = gimp_get_plug_in ();
+ GimpPlugIn *plug_in = gimp_get_plug_in ();
gchar *gradient_callback = gimp_procedural_db_temp_name ();
GimpGradientData *gradient_data;
@@ -121,13 +121,13 @@ gimp_gradient_select_new (const gchar *title,
else
{
static const GimpParamDef args[] =
- {
- { GIMP_PDB_STRING, "str", "String" },
- { GIMP_PDB_INT32, "gradient width", "Gradient width" },
- { GIMP_PDB_FLOATARRAY,"gradient data", "The gradient mask data" },
- { GIMP_PDB_INT32, "dialog status", "If the dialog was closing "
- "[0 = No, 1 = Yes]" }
- };
+ {
+ { GIMP_PDB_STRING, "str", "String" },
+ { GIMP_PDB_INT32, "gradient width", "Gradient width" },
+ { GIMP_PDB_FLOATARRAY,"gradient data", "The gradient mask data" },
+ { GIMP_PDB_INT32, "dialog status", "If the dialog was closing "
+ "[0 = No, 1 = Yes]" }
+ };
gimp_install_temp_proc (gradient_callback,
"Temporary gradient popup callback procedure",
@@ -166,7 +166,8 @@ gimp_gradient_select_new (const gchar *title,
g_hash_table_insert (gimp_gradient_select_ht,
- gradient_callback, gradient_data);
+ g_strdup (gradient_callback),
+ gradient_data);
}
return gradient_callback;
@@ -227,7 +228,10 @@ gimp_gradient_data_free (GimpGradientData *data)
g_source_remove (data->idle_id);
if (data->gradient_callback)
- gimp_gradients_close_popup (data->gradient_callback);
+ {
+ gimp_gradients_close_popup (data->gradient_callback);
+ g_free (data->gradient_callback);
+ }
g_free (data->gradient_name);
g_free (data->gradient_data);
@@ -319,7 +323,8 @@ gimp_temp_gradient_run_idle (GimpGradientData *gradient_data)
gradient_data->gradient_callback = NULL;
gimp_gradient_select_destroy (gradient_callback);
+ g_free (gradient_callback);
}
- return FALSE;
+ return G_SOURCE_REMOVE;
}
diff --git a/libgimp/gimppaletteselect.c b/libgimp/gimppaletteselect.c
index 02d3862492..d69224ac8d 100644
--- a/libgimp/gimppaletteselect.c
+++ b/libgimp/gimppaletteselect.c
@@ -113,12 +113,12 @@ gimp_palette_select_new (const gchar *title,
else
{
static const GimpParamDef args[] =
- {
- { GIMP_PDB_STRING, "str", "String" },
- { GIMP_PDB_INT32, "num colors", "Number of colors" },
- { GIMP_PDB_INT32, "dialog status", "If the dialog was closing "
- "[0 = No, 1 = Yes]" }
- };
+ {
+ { GIMP_PDB_STRING, "str", "String" },
+ { GIMP_PDB_INT32, "num colors", "Number of colors" },
+ { GIMP_PDB_INT32, "dialog status", "If the dialog was closing "
+ "[0 = No, 1 = Yes]" }
+ };
gimp_install_temp_proc (palette_callback,
"Temporary palette popup callback procedure",
@@ -155,7 +155,8 @@ gimp_palette_select_new (const gchar *title,
}
g_hash_table_insert (gimp_palette_select_ht,
- palette_callback, palette_data);
+ g_strdup (palette_callback),
+ palette_data);
}
return palette_callback;
@@ -216,7 +217,10 @@ gimp_palette_data_free (GimpPaletteData *data)
g_source_remove (data->idle_id);
if (data->palette_callback)
- gimp_palettes_close_popup (data->palette_callback);
+ {
+ gimp_palettes_close_popup (data->palette_callback);
+ g_free (data->palette_callback);
+ }
g_free (data->palette_name);
@@ -298,7 +302,8 @@ gimp_temp_palette_run_idle (GimpPaletteData *palette_data)
palette_data->palette_callback = NULL;
gimp_palette_select_destroy (palette_callback);
+ g_free (palette_callback);
}
- return FALSE;
+ return G_SOURCE_REMOVE;
}
diff --git a/libgimp/gimppatternselect.c b/libgimp/gimppatternselect.c
index 463969c397..288e3081a7 100644
--- a/libgimp/gimppatternselect.c
+++ b/libgimp/gimppatternselect.c
@@ -142,16 +142,16 @@ gimp_pattern_select_new (const gchar *title,
else
{
static const GimpParamDef args[] =
- {
- { GIMP_PDB_STRING, "str", "String" },
- { GIMP_PDB_INT32, "mask width", "Pattern width" },
- { GIMP_PDB_INT32, "mask height", "Pattern height" },
- { GIMP_PDB_INT32, "mask bpp", "Pattern bytes per pixel" },
- { GIMP_PDB_INT32, "mask len", "Length of pattern mask data" },
- { GIMP_PDB_INT8ARRAY,"mask data", "The pattern mask data" },
- { GIMP_PDB_INT32, "dialog status", "If the dialog was closing "
- "[0 = No, 1 = Yes]" }
- };
+ {
+ { GIMP_PDB_STRING, "str", "String" },
+ { GIMP_PDB_INT32, "mask width", "Pattern width" },
+ { GIMP_PDB_INT32, "mask height", "Pattern height" },
+ { GIMP_PDB_INT32, "mask bpp", "Pattern bytes per pixel" },
+ { GIMP_PDB_INT32, "mask len", "Length of pattern mask data" },
+ { GIMP_PDB_INT8ARRAY,"mask data", "The pattern mask data" },
+ { GIMP_PDB_INT32, "dialog status", "If the dialog was closing "
+ "[0 = No, 1 = Yes]" }
+ };
gimp_install_temp_proc (pattern_callback,
"Temporary pattern popup callback procedure",
@@ -188,7 +188,8 @@ gimp_pattern_select_new (const gchar *title,
}
g_hash_table_insert (gimp_pattern_select_ht,
- pattern_callback, pattern_data);
+ g_strdup (pattern_callback),
+ pattern_data);
}
return pattern_callback;
@@ -249,7 +250,10 @@ gimp_pattern_data_free (GimpPatternData *data)
g_source_remove (data->idle_id);
if (data->pattern_callback)
- gimp_patterns_close_popup (data->pattern_callback);
+ {
+ gimp_patterns_close_popup (data->pattern_callback);
+ g_free (data->pattern_callback);
+ }
g_free (data->pattern_name);
g_free (data->pattern_mask_data);
@@ -345,7 +349,8 @@ gimp_temp_pattern_run_idle (GimpPatternData *pattern_data)
pattern_data->pattern_callback = NULL;
gimp_pattern_select_destroy (pattern_callback);
+ g_free (pattern_callback);
}
- return FALSE;
+ return G_SOURCE_REMOVE;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]