[gnome-builder] color-picker: fix unsafe gsettings unbinding



commit 634391a1a3b4dbd7347b662551f907e31780d979
Author: Christian Hergert <chergert redhat com>
Date:   Fri Jul 14 19:48:45 2017 -0700

    color-picker: fix unsafe gsettings unbinding
    
    Settings are automatically unbound when the reference count
    drops to zero. It is unsafe to call unbind on those from the
    finalizer.

 plugins/color-picker/gb-color-picker-prefs.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)
---
diff --git a/plugins/color-picker/gb-color-picker-prefs.c b/plugins/color-picker/gb-color-picker-prefs.c
index 3465280..c8b597d 100644
--- a/plugins/color-picker/gb-color-picker-prefs.c
+++ b/plugins/color-picker/gb-color-picker-prefs.c
@@ -542,13 +542,13 @@ gb_color_picker_prefs_set_panel (GbColorPickerPrefs *self,
           gb_color_picker_prefs_unbind_settings (self);
           gstyle_color_panel_set_prefs_pages (self->panel, NULL, NULL, NULL, NULL);
           gtk_list_box_bind_model (GTK_LIST_BOX (self->palettes_listbox), NULL, NULL, NULL, NULL);
-          self->panel = NULL;
+          ide_clear_weak_pointer (&self->panel);
           self->palette_widget = NULL;
         }
 
-      self->panel = panel;
       if (panel != NULL && GSTYLE_IS_COLOR_PANEL (panel))
         {
+          ide_set_weak_pointer (&self->panel, panel);
           self->palette_widget = gstyle_color_panel_get_palette_widget (self->panel);
           self->palettes_store = gstyle_palette_widget_get_store (self->palette_widget);
           gtk_list_box_bind_model (GTK_LIST_BOX (self->palettes_listbox),
@@ -631,7 +631,7 @@ gb_color_picker_prefs_finalize (GObject *object)
 {
   GbColorPickerPrefs *self = (GbColorPickerPrefs *)object;
 
-  gb_color_picker_prefs_set_panel (self, NULL);
+  ide_clear_weak_pointer (&self->panel);
 
   g_clear_object (&self->components_page);
   g_clear_object (&self->color_strings_page);


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