diff options
| author | Robert McQueen <robot101@debian.org> | 2006-04-28 21:11:28 +0000 | 
|---|---|---|
| committer | Robert McQueen <robot101@debian.org> | 2006-04-28 21:11:28 +0000 | 
| commit | 3658482cebe5c1e356859a28584e14898923046d (patch) | |
| tree | 943400d15dc1cd7e7ddb7e8ae64c984ff4ecaf15 /glib/dbus-gproxy.c | |
| parent | b3f18b3040663fb2dd631985d5a9010ba3a31265 (diff) | |
2005-04-28  Robert McQueen  <robot101@debian.org>
	* glib/dbus-gproxy.c: Fix properties so that they can be given in
	any order, making it easier for people who inherit from this
	object.
Diffstat (limited to 'glib/dbus-gproxy.c')
| -rw-r--r-- | glib/dbus-gproxy.c | 29 | 
1 files changed, 22 insertions, 7 deletions
| diff --git a/glib/dbus-gproxy.c b/glib/dbus-gproxy.c index f83dac58..e422ceab 100644 --- a/glib/dbus-gproxy.c +++ b/glib/dbus-gproxy.c @@ -1301,7 +1301,8 @@ dbus_g_proxy_constructor (GType                  type,  {    DBusGProxy *proxy;    DBusGProxyClass *klass; -  GObjectClass *parent_class;   +  GObjectClass *parent_class; +  DBusGProxyPrivate *priv;    klass = DBUS_G_PROXY_CLASS (g_type_class_peek (DBUS_TYPE_G_PROXY)); @@ -1310,6 +1311,22 @@ dbus_g_proxy_constructor (GType                  type,    proxy = DBUS_G_PROXY (parent_class->constructor (type, n_construct_properties,  						    construct_properties)); +  priv = DBUS_G_PROXY_GET_PRIVATE (proxy); + +  /* if these assertions fail, a deriving class has not set our required +   * parameters - our own public constructors do return_if_fail checks +   * on these parameters being provided. unfortunately we can't assert +   * for manager because it's allowed to be NULL when tha mangager is +   * setting up a bus proxy for its own calls */ +  g_assert (priv->name != NULL); +  g_assert (priv->path != NULL); +  g_assert (priv->interface != NULL); + +  if (priv->manager != NULL) +    { +      dbus_g_proxy_manager_register (priv->manager, proxy); +    } +    return G_OBJECT (proxy);  } @@ -1466,12 +1483,11 @@ dbus_g_proxy_set_property (GObject *object,        priv->interface = g_strdup (g_value_get_string (value));        break;      case PROP_CONNECTION: -      connection = g_value_get_boxed(value); -      if(connection != NULL) -      { +      connection = g_value_get_boxed (value); +      if (connection != NULL) +        {            priv->manager = dbus_g_proxy_manager_get (DBUS_CONNECTION_FROM_G_CONNECTION (connection)); -          dbus_g_proxy_manager_register (priv->manager, proxy); -      } +        }        break;      default:        G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); @@ -1738,7 +1754,6 @@ manager_begin_bus_call (DBusGProxyManager    *manager,  					 "name", DBUS_SERVICE_DBUS,  					 "path", DBUS_PATH_DBUS,  					 "interface", DBUS_INTERFACE_DBUS, -                                         "connection", NULL,  					 NULL);        priv = DBUS_G_PROXY_GET_PRIVATE(manager->bus_proxy);        priv->manager = manager; | 
