summaryrefslogtreecommitdiff
path: root/registryd
diff options
context:
space:
mode:
authorFederico Mena Quintero <federico@gnome.org>2022-10-18 18:54:08 -0500
committerFederico Mena Quintero <federico@gnome.org>2022-11-07 16:31:30 -0600
commitb9093a3ee00ec420676664fd9a80da7ceb6a5772 (patch)
tree5dc04ab429f805d6e77106c24c8850dbac02ea76 /registryd
parentf366b4ade2846a0ff4b6edaf5eaacc9256f10aeb (diff)
downloadat-spi2-core-b9093a3ee00ec420676664fd9a80da7ceb6a5772.tar.gz
impl_Unembed() - use demarshal_reference() instead of duplicating it here
Diffstat (limited to 'registryd')
-rw-r--r--registryd/registry.c23
1 files changed, 8 insertions, 15 deletions
diff --git a/registryd/registry.c b/registryd/registry.c
index e98e8c14..aa1ffb32 100644
--- a/registryd/registry.c
+++ b/registryd/registry.c
@@ -470,27 +470,20 @@ impl_Embed (DBusMessage *message, SpiRegistry *registry)
static DBusMessage*
impl_Unembed (DBusMessage *message, SpiRegistry *registry)
{
- DBusMessageIter iter, iter_struct;
- gchar *app_name, *obj_path;
+ SpiReference *app_reference;
guint index;
- dbus_message_iter_init (message, &iter);
- dbus_message_iter_recurse (&iter, &iter_struct);
- if (!(dbus_message_iter_get_arg_type (&iter_struct) == DBUS_TYPE_STRING))
- goto error;
- dbus_message_iter_get_basic (&iter_struct, &app_name);
- if (!dbus_message_iter_next (&iter_struct))
- goto error;
- if (!(dbus_message_iter_get_arg_type (&iter_struct) == DBUS_TYPE_OBJECT_PATH))
- goto error;
- dbus_message_iter_get_basic (&iter_struct, &obj_path);
+ if (demarshal_reference (message, &app_reference) != DEMARSHAL_STATUS_SUCCESS)
+ {
+ return dbus_message_new_error (message, DBUS_ERROR_FAILED, "Invalid arguments");
+ }
- if (find_index_of_reference (registry->apps, app_name, obj_path, &index))
+ if (find_index_of_reference (registry->apps, app_reference->name, app_reference->path, &index))
remove_application (registry, index);
+ spi_reference_free (app_reference);
+
return NULL;
-error:
- return dbus_message_new_error (message, DBUS_ERROR_FAILED, "Invalid arguments");
}
/* org.at_spi.Component interface */