summaryrefslogtreecommitdiff
path: root/src/lib/ethumb_client/ethumb_client.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/ethumb_client/ethumb_client.c')
-rw-r--r--src/lib/ethumb_client/ethumb_client.c17
1 files changed, 12 insertions, 5 deletions
diff --git a/src/lib/ethumb_client/ethumb_client.c b/src/lib/ethumb_client/ethumb_client.c
index e5919f7dbf..70e56bce94 100644
--- a/src/lib/ethumb_client/ethumb_client.c
+++ b/src/lib/ethumb_client/ethumb_client.c
@@ -204,6 +204,7 @@ _ethumb_client_free(Ethumb_Client *client)
if (client->invalid)
return;
+ if (client->dbus_pending)
{
Eldbus_Pending *pending;
EINA_LIST_FREE(client->dbus_pending, pending)
@@ -216,8 +217,11 @@ _ethumb_client_free(Ethumb_Client *client)
struct _ethumb_pending_add *pending = data;
if (pending->pending_call)
{
- eldbus_pending_cancel(pending->pending_call);
+ Eldbus_Pending *call = pending->pending_call;
+
+ pending->pending_call = NULL;
pending->client = NULL;
+ eldbus_pending_cancel(call);
}
else
{
@@ -245,8 +249,11 @@ _ethumb_client_free(Ethumb_Client *client)
pending->free_data(pending->data);
if (pending->pending_call)
{
- eldbus_pending_cancel(pending->pending_call);
+ Eldbus_Pending *call = pending->pending_call;
+
+ pending->pending_call = NULL;
pending->client = NULL;
+ eldbus_pending_cancel(call);
}
else
{
@@ -983,7 +990,7 @@ _ethumb_client_queue_add_cb(void *data, const Eldbus_Message *msg, Eldbus_Pendin
pending->pending_call = NULL;
if (!client) goto end;
client->pending_add = eina_list_remove(client->pending_add, pending);
-
+
if (eldbus_message_error_get(msg, &errname, &errmsg))
{
ERR("Error: %s %s", errname, errmsg);
@@ -996,7 +1003,7 @@ _ethumb_client_queue_add_cb(void *data, const Eldbus_Message *msg, Eldbus_Pendin
goto end;
}
-
+
generating = calloc(1, sizeof(*generating));
generating->id = id;
generating->file = pending->file;
@@ -1050,7 +1057,7 @@ _ethumb_client_queue_add(Ethumb_Client *client, const char *file, const char *ke
_ethumb_client_dbus_append_bytearray(main_itr, thumb_key);
client->pending_add = eina_list_append(client->pending_add, pending);
-
+
pending->pending_call = eldbus_proxy_send(client->proxy, msg,
_ethumb_client_queue_add_cb,
pending, -1);