[at-spi2-core] Clean up device listeners from disconnected applications



commit 04112bc453137d869ad9954bdaf980f9d5f1bcbc
Author: Mike Gorse <mgorse novell com>
Date:   Sun Aug 28 21:32:45 2011 -0500

    Clean up device listeners from disconnected applications

 registryd/deviceeventcontroller.c |    3 ++-
 registryd/registry.c              |    3 +--
 2 files changed, 3 insertions(+), 3 deletions(-)
---
diff --git a/registryd/deviceeventcontroller.c b/registryd/deviceeventcontroller.c
index 677163f..ecaa872 100644
--- a/registryd/deviceeventcontroller.c
+++ b/registryd/deviceeventcontroller.c
@@ -2069,7 +2069,7 @@ spi_deregister_controller_key_listener (SpiDEController            *controller,
   RemoveListenerClosure  ctx;
 
   ctx.bus = controller->bus;
-  ctx.listener = (DEControllerListener *) key_listener;
+  ctx.listener = (DEControllerListener *) spi_key_listener_clone (key_listener);
 
   /* special case, copy keyset from existing controller list entry */
   if (g_slist_length(key_listener->keys) == 0)
@@ -2083,6 +2083,7 @@ spi_deregister_controller_key_listener (SpiDEController            *controller,
   spi_re_entrant_list_foreach (&controller->key_listeners,
 				remove_listener_cb, &ctx);
 
+  spi_key_listener_clone_free ((DEControllerKeyListener *) ctx.listener);
 }
 
 void
diff --git a/registryd/registry.c b/registryd/registry.c
index 5431b46..d2025a3 100644
--- a/registryd/registry.c
+++ b/registryd/registry.c
@@ -293,8 +293,7 @@ handle_disconnection (DBusConnection *bus, DBusMessage *message, void *user_data
               SpiReference *ref  = g_ptr_array_index (reg->apps, i);
               while (!g_strcmp0 (old, ref->name))
                 {
-                  children_removed_listener (bus, i, old, ref->path);
-                  g_ptr_array_remove_index (reg->apps, i);
+                  remove_application (reg, bus, i);
                 }
             } 
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]