Re: [gtk-list] [gtk+970606] problems with gtk_widget_destroy()




David Mosberger-Tang writes:
>Unfortunately, I don't have much time to track this down. It looks
>like inserting a vbox into an hbox via a gtk_container_add()
>increments the ref count in the vbox by two.  

That is exactly what is happening. gtk_container_add calls
gtk_widget_set_parent which is where widgets (objects) get
referenced. But the box container_add functions also calls
gtk_widget_set_parent, referencing the widget again. I've gone through
gtk and fixed places where this occurs. I've also put code into
gtk_widget_set_parent so that it will warn you if you set the parent
of a widget to its current value (which is what happened in this case)
or if you call gtk_widget_set_parent when the widgets parent field is
non-NULL. (ie. It already has a parent).

A patch to do all this follows. (gzipped and uuencoded)

Peter

begin 644 gtk+.patch.gz
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
7*'SD8=^ .([L/PQ)4/H7I,Y0.*@7  #[
 
end



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