Owen Taylor wrote:
>    Well, yes, if you run a X client multiple times then the resource
>    will be recycled. In fact, eventually they will be recycled within
>    the same running X client.
>    But, as I thought, if the above causes problems for the plug
>    then there is a bug, either in plug/socket or in Bonobo.
>    For gdk_window_lookup() to return the same GdkWindow for two
>    X windows is simply not correct. There are two possibilities here:
>     - The DestroyNotify is not being caught at all.
>     - The CORBA transport and X event queue are out of sync so
>      that the new plug window is received before the DestroyNotify
>      is received for the old one.
>    The first is a memory leak, the second, worse because the
>    DestroyNotify would be interpreted as referring to the old
>    X window, not the new X window.

I'm not an gtk/XWindows expert,  but I think the Destroy Notify is too
late. Simply increasing the reference count (when it is returned from
gdk_window_lookup) solves the problem, and I don't understand what's
wrong with it, because we also do a gdk_window_unref in
gtk_plug_unrealize. Bonobo depends on a working Plug/Socket



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