[gnome-applets/wip/muktupavels/werror] charpick: fix -Wdiscarded-qualifiers warning
- From: Alberts Muktupāvels <muktupavels src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-applets/wip/muktupavels/werror] charpick: fix -Wdiscarded-qualifiers warning
- Date: Sat, 4 Apr 2020 20:55:57 +0000 (UTC)
commit a6e9d084c26da6e852d8bdc5fe1acb75e8133b08
Author: Alberts Muktupāvels <alberts muktupavels gmail com>
Date: Sat Apr 4 23:48:30 2020 +0300
charpick: fix -Wdiscarded-qualifiers warning
gnome-applets/charpick/charpick-applet.c | 60 ++++++++++++++++++++++----------
gnome-applets/charpick/properties.c | 10 ++++--
2 files changed, 48 insertions(+), 22 deletions(-)
---
diff --git a/gnome-applets/charpick/charpick-applet.c b/gnome-applets/charpick/charpick-applet.c
index a0948e6b0..deb4fbd37 100644
--- a/gnome-applets/charpick/charpick-applet.c
+++ b/gnome-applets/charpick/charpick-applet.c
@@ -258,8 +258,10 @@ menuitem_activated (GtkMenuItem *menuitem, charpick_data *curr_data)
string = g_object_get_data (G_OBJECT (menuitem), "string");
if (g_ascii_strcasecmp (curr_data->charlist, string) == 0)
return;
-
- curr_data->charlist = string;
+
+ g_free (curr_data->charlist);
+ curr_data->charlist = g_strdup (string);
+
build_table (curr_data);
if (g_settings_is_writable (curr_data->settings, KEY_CURRENT_LIST))
g_settings_set_string (curr_data->settings, KEY_CURRENT_LIST, curr_data->charlist);
@@ -660,23 +662,30 @@ charpicker_applet_fill (charpick_data *curr_data)
get_chartable (curr_data);
string = g_settings_get_string (curr_data->settings, KEY_CURRENT_LIST);
- if (string[0] != '\0') {
- list = curr_data->chartable;
- while (list) {
- if (g_ascii_strcasecmp (list->data, string) == 0)
- curr_data->charlist = list->data;
- list = g_list_next (list);
- }
- /* FIXME: yeah leak, but this code is full of leaks and evil
- point shuffling. This should really be rewritten
- -George */
- if (curr_data->charlist == NULL)
- curr_data->charlist = string;
- else
- g_free (string);
- } else {
- curr_data->charlist = curr_data->chartable->data;
- }
+
+ if (string[0] != '\0')
+ {
+ list = curr_data->chartable;
+
+ while (list)
+ {
+ if (g_ascii_strcasecmp (list->data, string) == 0)
+ {
+ g_free (curr_data->charlist);
+ curr_data->charlist = g_strdup (list->data);
+ }
+
+ list = g_list_next (list);
+ }
+
+ if (curr_data->charlist == NULL)
+ curr_data->charlist = g_strdup (string);
+ }
+ else
+ {
+ curr_data->charlist = g_strdup (curr_data->chartable->data);
+ }
+ g_free (string);
orientation = gp_applet_get_orientation (GP_APPLET (curr_data));
curr_data->panel_vertical = (orientation == GTK_ORIENTATION_VERTICAL);
@@ -763,6 +772,18 @@ charpick_applet_dispose (GObject *object)
G_OBJECT_CLASS (charpick_applet_parent_class)->dispose (object);
}
+static void
+charpick_applet_finalize (GObject *object)
+{
+ CharpickApplet *self;
+
+ self = CHARPICK_APPLET (object);
+
+ g_clear_pointer (&self->charlist, g_free);
+
+ G_OBJECT_CLASS (charpick_applet_parent_class)->finalize (object);
+}
+
static void
charpick_applet_class_init (CharpickAppletClass *self_class)
{
@@ -772,6 +793,7 @@ charpick_applet_class_init (CharpickAppletClass *self_class)
object_class->constructed = charpick_applet_constructed;
object_class->dispose = charpick_applet_dispose;
+ object_class->finalize = charpick_applet_finalize;
}
static void
diff --git a/gnome-applets/charpick/properties.c b/gnome-applets/charpick/properties.c
index 3cf9babec..3f3707584 100644
--- a/gnome-applets/charpick/properties.c
+++ b/gnome-applets/charpick/properties.c
@@ -136,7 +136,8 @@ add_palette_cb (GtkDialog *dialog, int response_id, charpick_data *curr_data)
if (curr_data->chartable == NULL) {
curr_data->chartable = list;
- curr_data->charlist = curr_data->chartable->data;
+ g_free (curr_data->charlist);
+ curr_data->charlist = g_strdup (curr_data->chartable->data);
build_table (curr_data);
if (g_settings_is_writable (curr_data->settings, KEY_CURRENT_LIST))
@@ -198,7 +199,9 @@ edit_palette_cb (GtkDialog *dialog, int response_id, charpick_data *curr_data)
gtk_list_store_set (GTK_LIST_STORE (model), &iter, 0, new, 1, new, -1);
if (g_ascii_strcasecmp (curr_data->charlist, charlist) == 0) {
- curr_data->charlist = new;
+ g_free (curr_data->charlist);
+ curr_data->charlist = g_strdup (new);
+
build_table (curr_data);
if (g_settings_is_writable (curr_data->settings, KEY_CURRENT_LIST))
@@ -288,8 +291,9 @@ delete_palette (GtkButton *button, charpick_data *curr_data)
curr_data->chartable = g_list_remove (curr_data->chartable, charlist);
if (g_ascii_strcasecmp (curr_data->charlist, charlist) == 0) {
+ g_free (curr_data->charlist);
curr_data->charlist = curr_data->chartable != NULL ?
- curr_data->chartable->data : "";
+ g_strdup (curr_data->chartable->data) : g_strdup ("");
if (g_settings_is_writable (curr_data->settings, KEY_CURRENT_LIST))
g_settings_set_string (curr_data->settings, KEY_CURRENT_LIST, curr_data->charlist);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]