aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mm-base-sms.c51
1 files changed, 24 insertions, 27 deletions
diff --git a/src/mm-base-sms.c b/src/mm-base-sms.c
index e84ece62..90dda3d2 100644
--- a/src/mm-base-sms.c
+++ b/src/mm-base-sms.c
@@ -343,20 +343,18 @@ handle_store_ready (MMBaseSms *self,
GError *error = NULL;
if (!MM_BASE_SMS_GET_CLASS (self)->store_finish (self, res, &error)) {
- /* On error, clear up the parts we generated */
- g_list_free_full (self->priv->parts, (GDestroyNotify)mm_sms_part_free);
- self->priv->parts = NULL;
g_dbus_method_invocation_take_error (ctx->invocation, error);
- } else {
- mm_gdbus_sms_set_storage (MM_GDBUS_SMS (ctx->self), ctx->storage);
+ handle_store_context_free (ctx);
+ return;
+ }
- /* Transition from Unknown->Stored for SMS which were created by the user */
- if (mm_gdbus_sms_get_state (MM_GDBUS_SMS (ctx->self)) == MM_SMS_STATE_UNKNOWN)
- mm_gdbus_sms_set_state (MM_GDBUS_SMS (ctx->self), MM_SMS_STATE_STORED);
+ mm_gdbus_sms_set_storage (MM_GDBUS_SMS (ctx->self), ctx->storage);
- mm_gdbus_sms_complete_store (MM_GDBUS_SMS (ctx->self), ctx->invocation);
- }
+ /* Transition from Unknown->Stored for SMS which were created by the user */
+ if (mm_gdbus_sms_get_state (MM_GDBUS_SMS (ctx->self)) == MM_SMS_STATE_UNKNOWN)
+ mm_gdbus_sms_set_state (MM_GDBUS_SMS (ctx->self), MM_SMS_STATE_STORED);
+ mm_gdbus_sms_complete_store (MM_GDBUS_SMS (ctx->self), ctx->invocation);
handle_store_context_free (ctx);
}
@@ -524,26 +522,25 @@ handle_send_ready (MMBaseSms *self,
GError *error = NULL;
if (!MM_BASE_SMS_GET_CLASS (self)->send_finish (self, res, &error)) {
- /* On error, clear up the parts we generated */
- g_list_free_full (self->priv->parts, (GDestroyNotify)mm_sms_part_free);
- self->priv->parts = NULL;
g_dbus_method_invocation_take_error (ctx->invocation, error);
- } else {
- /* Transition from Unknown->Sent or Stored->Sent */
- if (mm_gdbus_sms_get_state (MM_GDBUS_SMS (ctx->self)) == MM_SMS_STATE_UNKNOWN ||
- mm_gdbus_sms_get_state (MM_GDBUS_SMS (ctx->self)) == MM_SMS_STATE_STORED) {
- GList *l;
-
- /* Update state */
- mm_gdbus_sms_set_state (MM_GDBUS_SMS (ctx->self), MM_SMS_STATE_SENT);
- /* Grab last message reference */
- l = g_list_last (mm_base_sms_get_parts (ctx->self));
- mm_gdbus_sms_set_message_reference (MM_GDBUS_SMS (ctx->self),
- mm_sms_part_get_message_reference ((MMSmsPart *)l->data));
- }
- mm_gdbus_sms_complete_send (MM_GDBUS_SMS (ctx->self), ctx->invocation);
+ handle_send_context_free (ctx);
+ return;
+ }
+
+ /* Transition from Unknown->Sent or Stored->Sent */
+ if (mm_gdbus_sms_get_state (MM_GDBUS_SMS (ctx->self)) == MM_SMS_STATE_UNKNOWN ||
+ mm_gdbus_sms_get_state (MM_GDBUS_SMS (ctx->self)) == MM_SMS_STATE_STORED) {
+ GList *l;
+
+ /* Update state */
+ mm_gdbus_sms_set_state (MM_GDBUS_SMS (ctx->self), MM_SMS_STATE_SENT);
+ /* Grab last message reference */
+ l = g_list_last (mm_base_sms_get_parts (ctx->self));
+ mm_gdbus_sms_set_message_reference (MM_GDBUS_SMS (ctx->self),
+ mm_sms_part_get_message_reference ((MMSmsPart *)l->data));
}
+ mm_gdbus_sms_complete_send (MM_GDBUS_SMS (ctx->self), ctx->invocation);
handle_send_context_free (ctx);
}