GDBus: Update docs for GDBusProxy::g-properties-changed signal
authorDavid Zeuthen <davidz@redhat.com>
Thu, 13 May 2010 20:57:29 +0000 (16:57 -0400)
committerDavid Zeuthen <davidz@redhat.com>
Thu, 13 May 2010 20:57:29 +0000 (16:57 -0400)
Also update the example. See

https://bugzilla.gnome.org/show_bug.cgi?id=618559

for more details.

Signed-off-by: David Zeuthen <davidz@redhat.com>
gio/gdbusproxy.c
gio/tests/gdbus-example-watch-proxy.c

index bf0e2d1..07b7f8e 100644 (file)
@@ -387,13 +387,13 @@ g_dbus_proxy_class_init (GDBusProxyClass *klass)
   /**
    * GDBusProxy::g-properties-changed:
    * @proxy: The #GDBusProxy emitting the signal.
-   * @changed_properties: A #GVariant containing the properties that
-   * changed or %NULL if no properties changed.
-   * @invalidated_properties: A %NULL terminated list of properties that was
-   * invalidated or %NULL if no properties was invalidated.
+   * @changed_properties: A #GVariant containing the properties that changed
+   * @invalidated_properties: A %NULL terminated array of properties that was invalidated
    *
    * Emitted when one or more D-Bus properties on @proxy changes. The
-   * local cache has already been updated when this signal fires.
+   * local cache has already been updated when this signal fires. Note
+   * that both @changed_properties and @invalidated_properties are
+   * guaranteed to never be %NULL (either may be empty though).
    *
    * This signal corresponds to the
    * <literal>PropertiesChanged</literal> D-Bus signal on the
index f4796ee..972a66d 100644 (file)
@@ -47,8 +47,11 @@ on_properties_changed (GDBusProxy          *proxy,
                        const gchar* const  *invalidated_properties,
                        gpointer             user_data)
 {
+  /* Note that we are guaranteed that changed_properties and
+   * invalidated_properties are never NULL
+   */
 
-  if (changed_properties != NULL)
+  if (g_variant_n_children (changed_properties) > 0)
     {
       GVariantIter *iter;
       GVariant *item;
@@ -72,7 +75,7 @@ on_properties_changed (GDBusProxy          *proxy,
         }
     }
 
-  if (invalidated_properties != NULL)
+  if (g_strv_length ((GStrv) invalidated_properties) > 0)
     {
       guint n;
       g_print (" *** Properties Invalidated:\n");