Glib interface: dbus_g_object_type_install_info()
Claessens Xavier
x_claessens at skynet.be
Mon Nov 7 11:00:12 PST 2005
On lun, 2005-11-07 at 19:46 +0100, Claessens Xavier wrote:
> On lun, 2005-11-07 at 18:12 +0100, Claessens Xavier wrote:
> > Hi,
> > I'm writing a plugin which uses DBUS. At initialisation I call
> >
> > dbus_g_object_type_install_info(...,&dbus_glib_remote_object_object_info)
> >
> > But when unloading the plugin (via dlclose)
> > dbus_glib_remote_object_object_info become unvalide and cause GLib to
> > crash.
> >
> > So i'm looking for something like dbus_g_object_type_uninstall_info()
> > which I call before dlclose(). How can I do that ?
> >
> > Thanks,
> > Xavier Claessens.
>
> I see in D-BUS code:
>
> g_type_set_qdata (object_type,
> dbus_g_object_type_dbus_metadata_quark (),
> (gpointer) info);
>
> The problem is that info can become invalide when do the dlclode(). How
> can I unset the 'info' data before invalidate it ? That's more a GLib
> question than a dbus one, I know...
I begin to understand the problem. I think dbus-glib miss a function
like:
void
dbus_g_object_type_uninstall_info (GType object_type,
const DBusGObjectInfo *info)
{
g_return_if_fail (G_TYPE_IS_CLASSED (object_type));
_dbus_g_value_types_init ();
g_type_set_qdata (object_type,
dbus_g_object_type_dbus_metadata_quark (),
NULL);
}
To add in dbus-gobject.c at line 1534 (dbus version 0.50)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part
Url : http://lists.freedesktop.org/archives/dbus/attachments/20051107/76e80daa/attachment.pgp
More information about the dbus
mailing list