Bug 551699 – gtk_scrolled_window_destroy() is broken
2008-09-10 Björn Lindqvist <bjourne@gmail.com> Bug 551699 – gtk_scrolled_window_destroy() is broken * gtk/gtkscrolledwindow.c (gtk_scrolled_window_destroy, gtk_scrolled_window_finalize): Check that the [hv]scrollbar attributes are not-NULL before destroying and unparenting them. svn path=/trunk/; revision=21341
This commit is contained in:
parent
d7425c0c5f
commit
7b7f8fc310
@ -1,3 +1,11 @@
|
|||||||
|
2008-09-10 Björn Lindqvist <bjourne@gmail.com>
|
||||||
|
|
||||||
|
Bug 551699 – gtk_scrolled_window_destroy() is broken
|
||||||
|
|
||||||
|
* gtk/gtkscrolledwindow.c (gtk_scrolled_window_destroy,
|
||||||
|
gtk_scrolled_window_finalize): Check that the [hv]scrollbar
|
||||||
|
attributes are not-NULL before destroying and unparenting them.
|
||||||
|
|
||||||
2008-09-10 Simos Xenitellis <simos@gnome.org>
|
2008-09-10 Simos Xenitellis <simos@gnome.org>
|
||||||
|
|
||||||
Bug 550676 – Memory leak, update keyboard layout data structure
|
Bug 550676 – Memory leak, update keyboard layout data structure
|
||||||
|
@ -100,7 +100,6 @@ enum
|
|||||||
};
|
};
|
||||||
|
|
||||||
static void gtk_scrolled_window_destroy (GtkObject *object);
|
static void gtk_scrolled_window_destroy (GtkObject *object);
|
||||||
static void gtk_scrolled_window_finalize (GObject *object);
|
|
||||||
static void gtk_scrolled_window_set_property (GObject *object,
|
static void gtk_scrolled_window_set_property (GObject *object,
|
||||||
guint prop_id,
|
guint prop_id,
|
||||||
const GValue *value,
|
const GValue *value,
|
||||||
@ -192,7 +191,6 @@ gtk_scrolled_window_class_init (GtkScrolledWindowClass *class)
|
|||||||
widget_class = (GtkWidgetClass*) class;
|
widget_class = (GtkWidgetClass*) class;
|
||||||
container_class = (GtkContainerClass*) class;
|
container_class = (GtkContainerClass*) class;
|
||||||
|
|
||||||
gobject_class->finalize = gtk_scrolled_window_finalize;
|
|
||||||
gobject_class->set_property = gtk_scrolled_window_set_property;
|
gobject_class->set_property = gtk_scrolled_window_set_property;
|
||||||
gobject_class->get_property = gtk_scrolled_window_get_property;
|
gobject_class->get_property = gtk_scrolled_window_get_property;
|
||||||
|
|
||||||
@ -786,25 +784,24 @@ gtk_scrolled_window_destroy (GtkObject *object)
|
|||||||
{
|
{
|
||||||
GtkScrolledWindow *scrolled_window = GTK_SCROLLED_WINDOW (object);
|
GtkScrolledWindow *scrolled_window = GTK_SCROLLED_WINDOW (object);
|
||||||
|
|
||||||
gtk_widget_unparent (scrolled_window->hscrollbar);
|
if (scrolled_window->hscrollbar)
|
||||||
gtk_widget_unparent (scrolled_window->vscrollbar);
|
{
|
||||||
gtk_widget_destroy (scrolled_window->hscrollbar);
|
gtk_widget_unparent (scrolled_window->hscrollbar);
|
||||||
gtk_widget_destroy (scrolled_window->vscrollbar);
|
gtk_widget_destroy (scrolled_window->hscrollbar);
|
||||||
|
g_object_unref (scrolled_window->hscrollbar);
|
||||||
|
scrolled_window->hscrollbar = NULL;
|
||||||
|
}
|
||||||
|
if (scrolled_window->vscrollbar)
|
||||||
|
{
|
||||||
|
gtk_widget_unparent (scrolled_window->vscrollbar);
|
||||||
|
gtk_widget_destroy (scrolled_window->vscrollbar);
|
||||||
|
g_object_unref (scrolled_window->vscrollbar);
|
||||||
|
scrolled_window->vscrollbar = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
GTK_OBJECT_CLASS (gtk_scrolled_window_parent_class)->destroy (object);
|
GTK_OBJECT_CLASS (gtk_scrolled_window_parent_class)->destroy (object);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
|
||||||
gtk_scrolled_window_finalize (GObject *object)
|
|
||||||
{
|
|
||||||
GtkScrolledWindow *scrolled_window = GTK_SCROLLED_WINDOW (object);
|
|
||||||
|
|
||||||
g_object_unref (scrolled_window->hscrollbar);
|
|
||||||
g_object_unref (scrolled_window->vscrollbar);
|
|
||||||
|
|
||||||
G_OBJECT_CLASS (gtk_scrolled_window_parent_class)->finalize (object);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
gtk_scrolled_window_set_property (GObject *object,
|
gtk_scrolled_window_set_property (GObject *object,
|
||||||
guint prop_id,
|
guint prop_id,
|
||||||
|
Loading…
Reference in New Issue
Block a user