Revert "Add relation-dump option to at_spi2_tool"
[platform/upstream/at-spi2-core.git] / atspi / atspi-event-listener.c
index 752d440..5c4b442 100644 (file)
@@ -951,16 +951,20 @@ _atspi_dbus_handle_event (DBusConnection *bus, DBusMessage *message, void *data)
 
   memset (&e, 0, sizeof (e));
 
-  if (category)
+  if (!category)
   {
-    category = g_utf8_strrchr (category, -1, '.');
-    if (category == NULL)
-    {
-      // TODO: Error
-      return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
-    }
-    category++;
+    // TODO: Error
+    return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
+  }
+
+  category = g_utf8_strrchr (category, -1, '.');
+  if (category == NULL)
+  {
+    // TODO: Error
+    return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
   }
+  category++;
+
   dbus_message_iter_get_basic (&iter, &detail);
   dbus_message_iter_next (&iter);
   dbus_message_iter_get_basic (&iter, &detail1);
@@ -995,6 +999,14 @@ _atspi_dbus_handle_event (DBusConnection *bus, DBusMessage *message, void *data)
   }
   e.type = converted_type;
   e.source = _atspi_ref_accessible (dbus_message_get_sender(message), dbus_message_get_path(message));
+  if (e.source == NULL)
+  {
+    g_warning ("Got no valid source accessible for signal for signal %s from interface %s\n", member, category);
+    g_free (converted_type);
+    g_free (name);
+    g_free (detail);
+    return DBUS_HANDLER_RESULT_HANDLED;
+  }
 
   dbus_message_iter_recurse (&iter, &iter_variant);
   switch (dbus_message_iter_get_arg_type (&iter_variant))
@@ -1033,7 +1045,7 @@ _atspi_dbus_handle_event (DBusConnection *bus, DBusMessage *message, void *data)
   if (dbus_message_iter_get_arg_type (&iter) == DBUS_TYPE_ARRAY)
   {
     /* new form -- parse properties sent with event */
-    _atspi_dbus_update_cache_from_dict (e.source, &iter);
+    cache = _atspi_dbus_update_cache_from_dict (e.source, &iter);
   }
 
   if (!strncmp (e.type, "object:children-changed", 23))