This is an automated email from the git hooks/post-receive script. o c h o s i p u s h e d a c o m m i t t o b r a n c h m a s t e r in repository xfce/xfce4-panel.
commit 0bf9842cfa78a7e89ab1022f39ce60049ab0203f Author: Olivier Fourdan <four...@xfce.org> Date: Wed Jul 10 09:33:50 2019 +0200 arrow-button: Remove timeout on dispose (Bug #15696) The blinking source timeout has a GDestroyNotify function associated that will update the button when the timeout is removed. But the timeout is removed on the button finalize, i.e. once the object is freed, which will lead to a crash trying to access memory already freed. I think the original author meant to use `dispose` instead of `finalize` for removing the blinking timeout. Signed-off-by: Olivier Fourdan <four...@xfce.org> --- libxfce4panel/xfce-arrow-button.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/libxfce4panel/xfce-arrow-button.c b/libxfce4panel/xfce-arrow-button.c index 0879a20..dc61d10 100644 --- a/libxfce4panel/xfce-arrow-button.c +++ b/libxfce4panel/xfce-arrow-button.c @@ -74,7 +74,7 @@ static void xfce_arrow_button_get_property (GObject *o guint prop_id, GValue *value, GParamSpec *pspec); -static void xfce_arrow_button_finalize (GObject *object); +static void xfce_arrow_button_dispose (GObject *object); #if GTK_CHECK_VERSION (3, 0, 0) static gboolean xfce_arrow_button_draw (GtkWidget *widget, cairo_t *cr); @@ -132,7 +132,7 @@ xfce_arrow_button_class_init (XfceArrowButtonClass * klass) gobject_class = G_OBJECT_CLASS (klass); gobject_class->get_property = xfce_arrow_button_get_property; gobject_class->set_property = xfce_arrow_button_set_property; - gobject_class->finalize = xfce_arrow_button_finalize; + gobject_class->dispose = xfce_arrow_button_dispose; gtkwidget_class = GTK_WIDGET_CLASS (klass); #if GTK_CHECK_VERSION (3, 0, 0) @@ -265,14 +265,17 @@ xfce_arrow_button_get_property (GObject *object, static void -xfce_arrow_button_finalize (GObject *object) +xfce_arrow_button_dispose (GObject *object) { XfceArrowButton *button = XFCE_ARROW_BUTTON (object); if (button->priv->blinking_timeout_id != 0) - g_source_remove (button->priv->blinking_timeout_id); + { + g_source_remove (button->priv->blinking_timeout_id); + button->priv->blinking_timeout_id = 0; + } - (*G_OBJECT_CLASS (xfce_arrow_button_parent_class)->finalize) (object); + (*G_OBJECT_CLASS (xfce_arrow_button_parent_class)->dispose) (object); } -- 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