Re: [evolution-patches] 73375, changing server type -> crash




The docmentation is badly written, it is mixing the "destroy gtk object class virtual method" invocation, with the "destroy" signal.

The very last sentence gives a clue:
"If catching destruction is still needed, it can be done with a signal connection to ::destroy."

The gtkobject code:

void
gtk_object_destroy (GtkObject *object)
{
  g_return_if_fail (object != NULL);
  g_return_if_fail (GTK_IS_OBJECT (object));
 
  if (!(GTK_OBJECT_FLAGS (object) & GTK_IN_DESTRUCTION))
    g_object_run_dispose (G_OBJECT (object));
}

static void
gtk_object_dispose (GObject *gobject)
{
  GtkObject *object = GTK_OBJECT (gobject);

  /* guard against reinvocations during
   * destruction with the GTK_IN_DESTRUCTION flag.
   */
  if (!(GTK_OBJECT_FLAGS (object) & GTK_IN_DESTRUCTION))
    {
      GTK_OBJECT_SET_FLAGS (object, GTK_IN_DESTRUCTION);
     
      g_signal_emit (object, object_signals[DESTROY], 0);
     
      GTK_OBJECT_UNSET_FLAGS (object, GTK_IN_DESTRUCTION);
    }

  G_OBJECT_CLASS (parent_class)->dispose (gobject);
}



We can't use a weak ref since we need to know when it is destroyed (i.e. ui representation vanishes), not finalised (object vanishes).



On Wed, 2005-03-16 at 16:25 -0500, Jeffrey Stedfast wrote:
http://developer.gnome.org/dotplan/porting/ar01s11.html

The GtkObject::destroy signal can now be emitted multiple times on an
object.

On Tue, 2005-03-15 at 11:09 +0800, Not Zed wrote:
> 
> is this possible?
> 
> 
> On Mon, 2005-03-14 at 10:16 -0500, Jeffrey Stedfast wrote: 
> > if the destroy signal can be emitted multiple times now, wouldn't this
> > possibly unref config multiple times?
> > 
> > Jeff
> > 
> > On Mon, 2005-03-14 at 17:49 +0800, Not Zed wrote:
> > > 
> > > this may fix the problem, if it doesn't it does fix a problem.
> > > 
> > 


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