projects
/
platform
/
core
/
uifw
/
at-spi2-atk.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Don't return DBUS_HANDLER_RESULT_HANDLED for NameOwnerChanged signals
[platform/core/uifw/at-spi2-atk.git]
/
atk-adaptor
/
bridge.c
diff --git
a/atk-adaptor/bridge.c
b/atk-adaptor/bridge.c
index
be1810c
..
7dd355b
100644
(file)
--- a/
atk-adaptor/bridge.c
+++ b/
atk-adaptor/bridge.c
@@
-249,7
+249,9
@@
register_reply (DBusPendingCall *pending, void *user_data)
dbus_message_iter_next (&iter_struct);
dbus_message_iter_get_basic (&iter_struct, &obj_path);
dbus_message_iter_next (&iter_struct);
dbus_message_iter_get_basic (&iter_struct, &obj_path);
+ g_free (app->desktop_name);
app->desktop_name = g_strdup (app_name);
app->desktop_name = g_strdup (app_name);
+ g_free (app->desktop_path);
app->desktop_path = g_strdup (obj_path);
}
}
app->desktop_path = g_strdup (obj_path);
}
}
@@
-275,8
+277,8
@@
register_application (SpiBridge * app)
/* These will be overridden when we get a reply, but in practice these
defaults should always be correct */
/* These will be overridden when we get a reply, but in practice these
defaults should always be correct */
- app->desktop_name =
ATSPI_DBUS_NAME_REGISTRY
;
- app->desktop_path =
ATSPI_DBUS_PATH_ROOT
;
+ app->desktop_name =
g_strdup (ATSPI_DBUS_NAME_REGISTRY)
;
+ app->desktop_path =
g_strdup (ATSPI_DBUS_PATH_ROOT)
;
message = dbus_message_new_method_call (SPI_DBUS_NAME_REGISTRY,
ATSPI_DBUS_PATH_ROOT,
message = dbus_message_new_method_call (SPI_DBUS_NAME_REGISTRY,
ATSPI_DBUS_PATH_ROOT,
@@
-289,6
+291,10
@@
register_application (SpiBridge * app)
if (!dbus_connection_send_with_reply (app->bus, message, &pending, -1)
|| !pending)
{
if (!dbus_connection_send_with_reply (app->bus, message, &pending, -1)
|| !pending)
{
+ if (pending)
+ dbus_pending_call_unref (pending);
+
+ dbus_message_unref (message);
return FALSE;
}
return FALSE;
}
@@
-339,6
+345,11
@@
deregister_application (SpiBridge * app)
g_free (app->app_tmp_dir);
app->app_tmp_dir = NULL;
}
g_free (app->app_tmp_dir);
app->app_tmp_dir = NULL;
}
+
+ g_free (app->desktop_name);
+ app->desktop_name = NULL;
+ g_free (app->desktop_path);
+ app->desktop_path = NULL;
}
/*---------------------------------------------------------------------------*/
}
/*---------------------------------------------------------------------------*/
@@
-423,6
+434,8
@@
socket_ref_state_set (AtkObject *accessible)
static void
socket_embed_hook (AtkSocket * socket, gchar * plug_id)
{
static void
socket_embed_hook (AtkSocket * socket, gchar * plug_id)
{
+ g_return_if_fail (spi_global_register != NULL);
+
AtkObject *accessible = ATK_OBJECT(socket);
gchar *plug_name, *plug_path;
AtkObjectClass *klass;
AtkObject *accessible = ATK_OBJECT(socket);
gchar *plug_name, *plug_path;
AtkObjectClass *klass;
@@
-667,7
+680,6
@@
signal_filter (DBusConnection *bus, DBusMessage *message, void *user_data)
!g_strcmp0(member, "NameOwnerChanged"))
{
char *name, *old, *new;
!g_strcmp0(member, "NameOwnerChanged"))
{
char *name, *old, *new;
- result = DBUS_HANDLER_RESULT_HANDLED;
if (dbus_message_get_args (message, NULL,
DBUS_TYPE_STRING, &name,
DBUS_TYPE_STRING, &old,
if (dbus_message_get_args (message, NULL,
DBUS_TYPE_STRING, &name,
DBUS_TYPE_STRING, &old,
@@
-770,6
+782,8
@@
spi_atk_activate ()
return;
}
spi_initialize_cache (treepath);
return;
}
spi_initialize_cache (treepath);
+ if (spi_global_app_data->bus)
+ droute_path_register (treepath, spi_global_app_data->bus);
}
}
}
}
@@
-925,7
+939,8
@@
atk_bridge_adaptor_cleanup (void)
GList *l;
GSList *ls;
GList *l;
GSList *ls;
- g_return_if_fail (inited);
+ if (!inited)
+ return;
if (!spi_global_app_data)
return;
if (!spi_global_app_data)
return;
@@
-939,7
+954,9
@@
atk_bridge_adaptor_cleanup (void)
{
dbus_connection_remove_filter (spi_global_app_data->bus, signal_filter, NULL);
droute_context_unregister (spi_global_app_data->droute, spi_global_app_data->bus);
{
dbus_connection_remove_filter (spi_global_app_data->bus, signal_filter, NULL);
droute_context_unregister (spi_global_app_data->droute, spi_global_app_data->bus);
+ dbus_connection_close (spi_global_app_data->bus);
dbus_connection_unref (spi_global_app_data->bus);
dbus_connection_unref (spi_global_app_data->bus);
+ spi_global_app_data->bus = NULL;
}
for (l = spi_global_app_data->direct_connections; l; l = l->next)
}
for (l = spi_global_app_data->direct_connections; l; l = l->next)
@@
-950,18
+967,20
@@
atk_bridge_adaptor_cleanup (void)
droute_context_unregister (spi_global_app_data->droute, connection);
droute_unintercept_dbus (connection);
droute_context_unregister (spi_global_app_data->droute, connection);
droute_unintercept_dbus (connection);
+ dbus_connection_close (connection);
dbus_connection_unref (connection);
}
g_list_free (spi_global_app_data->direct_connections);
dbus_connection_unref (connection);
}
g_list_free (spi_global_app_data->direct_connections);
+ spi_global_app_data->direct_connections = NULL;
for (ls = clients; ls; ls = ls->next)
for (ls = clients; ls; ls = ls->next)
- g_free (l->data);
+ g_free (l
s
->data);
g_slist_free (clients);
clients = NULL;
g_slist_free (clients);
clients = NULL;
- g_
object_unref (
spi_global_cache);
- g_
object_unref (
spi_global_leasing);
- g_
object_unref (
spi_global_register);
+ g_
clear_object (&
spi_global_cache);
+ g_
clear_object (&
spi_global_leasing);
+ g_
clear_object (&
spi_global_register);
if (spi_global_app_data->main_context)
g_main_context_unref (spi_global_app_data->main_context);
if (spi_global_app_data->main_context)
g_main_context_unref (spi_global_app_data->main_context);