Re: [PATCH] libnm-glib: allow NMRemoteSettings constructor with NULL bus
- From: Dan Williams <dcbw redhat com>
- To: Daniel Drake <dsd laptop org>
- Cc: networkmanager-list gnome org
- Subject: Re: [PATCH] libnm-glib: allow NMRemoteSettings constructor with NULL bus
- Date: Tue, 16 Aug 2011 17:19:34 -0500
On Sat, 2011-08-06 at 19:59 +0100, Daniel Drake wrote:
> NMRemoteSettings's constructor requires a DBusGConnection, but there
> currently aren't any usable gobject-introspection bindings for that class.
> This means that NMRemoteSettings can't be used over gobject-introspection.
>
> Move the default fallback to the system bus into the constructor path, so
> that introspection bindings are usable.
>
> Python test case:
> from gi.repository import NMClient
> NMClient.RemoteSettings()
>
> Before, this produced a segfault. Now it returns a usable RemoteSettings
> object.
Applied, thanks!
Dan
> Index: NetworkManager-0.8.9997/libnm-glib/nm-remote-settings.c
> ===================================================================
> --- NetworkManager-0.8.9997.orig/libnm-glib/nm-remote-settings.c
> +++ NetworkManager-0.8.9997/libnm-glib/nm-remote-settings.c
> @@ -736,9 +736,6 @@ get_all_cb (DBusGProxy *proxy,
> NMRemoteSettings *
> nm_remote_settings_new (DBusGConnection *bus)
> {
> - if (bus == NULL)
> - bus = dbus_g_bus_get (DBUS_BUS_SYSTEM, NULL);
> -
> return (NMRemoteSettings *) g_object_new (NM_TYPE_REMOTE_SETTINGS,
> NM_REMOTE_SETTINGS_BUS, bus,
> NULL);
> @@ -887,11 +884,15 @@ set_property (GObject *object, guint pro
> const GValue *value, GParamSpec *pspec)
> {
> NMRemoteSettingsPrivate *priv = NM_REMOTE_SETTINGS_GET_PRIVATE (object);
> + DBusGConnection *connection;
>
> switch (prop_id) {
> case PROP_BUS:
> /* Construct only */
> - priv->bus = dbus_g_connection_ref ((DBusGConnection *) g_value_get_boxed (value));
> + connection = (DBusGConnection *) g_value_get_boxed (value);
> + if (!connection)
> + connection = dbus_g_bus_get (DBUS_BUS_SYSTEM, NULL);
> + priv->bus = dbus_g_connection_ref (connection);
> break;
> default:
> G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]