This is an automated email from the git hooks/post-receive script. timystery pushed a commit to branch master in repository panel-plugins/xfce4-sensors-plugin.
commit 5a8bd7644f3c65a267ddb94238c2e77df1814b57 Author: Fabian <timyst...@arcor.de> Date: Sun Mar 26 22:05:54 2017 +0200 Fix memory leaks with the tacho views by adding a callback for the destroy event and by properly nulling the already freed stuff --- lib/tacho.c | 22 ++++++++++++++++++++++ panel-plugin/sensors-plugin.c | 1 + src/actions.c | 8 ++++++-- 3 files changed, 29 insertions(+), 2 deletions(-) diff --git a/lib/tacho.c b/lib/tacho.c index ee1fce3..078d16c 100644 --- a/lib/tacho.c +++ b/lib/tacho.c @@ -60,6 +60,7 @@ static void gtk_sensorstacho_size_allocate(GtkWidget *widget, GtkAllocation *allocation); static GtkSizeRequestMode gtk_sensorstacho_get_request_mode(GtkWidget *widget); +void gtk_sensorstacho_destroy(GtkWidget *widget); gchar *font = NULL; // declared as extern in tacho.h @@ -136,6 +137,7 @@ gtk_sensorstacho_class_init (GtkSensorsTachoClass *ptr_gtksensorstachoclass) ptr_widgetclass->get_preferred_height_for_width = gtk_sensorstacho_get_preferred_height_for_width; ptr_widgetclass->size_allocate = gtk_sensorstacho_size_allocate; ptr_widgetclass->draw = gtk_sensorstacho_paint; + ptr_widgetclass->destroy = gtk_sensorstacho_destroy; if (font==NULL) font = g_strdup("Sans 12"); @@ -387,6 +389,26 @@ gtk_sensorstacho_paint (GtkWidget *widget, return TRUE; } + +/* -------------------------------------------------------------------------- */ +void +gtk_sensorstacho_destroy(GtkWidget *widget) +{ + GtkSensorsTacho *ptr_sensorstacho = GTK_SENSORSTACHO(widget); + TRACE("enter gtk_sensorstacho_destroy\n"); + g_return_if_fail(ptr_sensorstacho!=NULL); + + if (ptr_sensorstacho->color != NULL) + { + g_free(ptr_sensorstacho->color); + ptr_sensorstacho->color = NULL; + } + + gtk_sensorstacho_unset_text(ptr_sensorstacho); + TRACE("leave gtk_sensorstacho_destroy\n"); +} + + /* -------------------------------------------------------------------------- */ void gtk_sensorstacho_set_value (GtkSensorsTacho *ptr_sensorstacho, gdouble value) diff --git a/panel-plugin/sensors-plugin.c b/panel-plugin/sensors-plugin.c index 217ef97..9b09ceb 100644 --- a/panel-plugin/sensors-plugin.c +++ b/panel-plugin/sensors-plugin.c @@ -569,6 +569,7 @@ sensors_show_graphical_display (t_sensors *sensors) sensors->css_provider = gtk_css_provider_new (); ptr_gdkdisplay = gdk_display_get_default (); ptr_gdkscreen = gdk_display_get_default_screen (ptr_gdkdisplay); + g_return_val_if_fail(ptr_gdkscreen!=NULL, FALSE); gtk_style_context_add_provider_for_screen (ptr_gdkscreen, GTK_STYLE_PROVIDER (sensors->css_provider), diff --git a/src/actions.c b/src/actions.c index 9308cf1..d27f7dd 100644 --- a/src/actions.c +++ b/src/actions.c @@ -210,11 +210,15 @@ refresh_tacho_view (t_sensors_dialog *ptr_sensors_dialog_structure) { DBG("Removing deselected widget from container."); gtk_container_remove(GTK_CONTAINER(ptr_wdgt_table), ptr_sensorstachowidget); - if (ptr_sensorstacho->text) + if (ptr_sensorstacho->text) { g_free(ptr_sensorstacho->text); + ptr_sensorstacho->text = NULL; + } - if (ptr_sensorstacho->color) + if (ptr_sensorstacho->color) { g_free(ptr_sensorstacho->color); + ptr_sensorstacho->color = NULL; + } ptr_sensors_structure->tachos[idx_chip][idx_feature] = NULL; } -- To stop receiving notification emails like this one, please contact the administrator of this repository. _______________________________________________ Xfce4-commits mailing list Xfce4-commits@xfce.org https://mail.xfce.org/mailman/listinfo/xfce4-commits