on 4/4/01 7:54 AM, Michael Meeks at michael ximian com wrote:> Ok, so, there are several problems here. The first problem is
> built into the referencing scheme. An object has a reference count, but
> this contains no concept of ownership whatsoever. ie. it is impossible to
> tell who owns the 5 references it has. Consequently if someone comes
> along, references the server and then crashes or just leaks the reference,
> there is no possible way to detect this.That's true in theory, but not in practice. In practice, the Bonobo objects
we serve have a single owner. For example a Control has its control frame.
While in theory other objects can be holding references, the reference count
really does us no good here. A control without its control frame is usually
not a useful thing to have.
I thought this problem is already solved? (bonobo-control.c)
/* * This callback is invoked when the plug is unexpectedly destroyed by * way of its associated X window dying. This usually indicates that * the container application has died. This callback is _not_ invoked * if the BonoboControl is destroyed normally, i.e. the user unrefs * the BonoboControl away. */ static gboolean bonobo_control_plug_destroy_event_cb (GtkWidget *plug, GdkEventAny *event,- Dietmar