aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@lanedo.com>2013-07-18 22:43:55 +0200
committerAleksander Morgado <aleksander@lanedo.com>2013-07-18 22:44:49 +0200
commitd90a6309fbce3f96127e413e0c161a3f4385c2e4 (patch)
tree2ef05f90c537703e139a21eb8dc92afb2c06c79c
parent0245b6256a86f7ebb7202cc60485a2d8cb54c369 (diff)
broadband-modem-qmi: plug memleak when listing SMS messages
-rw-r--r--src/mm-broadband-modem-qmi.c47
1 files changed, 21 insertions, 26 deletions
diff --git a/src/mm-broadband-modem-qmi.c b/src/mm-broadband-modem-qmi.c
index 0c96b1ad..e7969efa 100644
--- a/src/mm-broadband-modem-qmi.c
+++ b/src/mm-broadband-modem-qmi.c
@@ -6719,16 +6719,7 @@ static void
load_initial_sms_parts_step (LoadInitialSmsPartsContext *ctx)
{
QmiMessageWmsListMessagesInput *input;
-
- /* Request to list messages in a given storage */
- input = qmi_message_wms_list_messages_input_new ();
- qmi_message_wms_list_messages_input_set_storage_type (
- input,
- mm_sms_storage_to_qmi_storage_type (ctx->storage),
- NULL);
- qmi_message_wms_list_messages_input_set_message_mode (input,
- QMI_WMS_MESSAGE_MODE_GSM_WCDMA,
- NULL);
+ gint tag_type = -1;
switch (ctx->step) {
case LOAD_INITIAL_SMS_PARTS_STEP_FIRST:
@@ -6741,34 +6732,22 @@ load_initial_sms_parts_step (LoadInitialSmsPartsContext *ctx)
case LOAD_INITIAL_SMS_PARTS_STEP_LIST_MT_READ:
mm_dbg ("loading MT-read messages from storage '%s'...",
mm_sms_storage_get_string (ctx->storage));
- qmi_message_wms_list_messages_input_set_message_tag (
- input,
- QMI_WMS_MESSAGE_TAG_TYPE_MT_READ,
- NULL);
+ tag_type = QMI_WMS_MESSAGE_TAG_TYPE_MT_READ;
break;
case LOAD_INITIAL_SMS_PARTS_STEP_LIST_MT_NOT_READ:
mm_dbg ("loading MT-not-read messages from storage '%s'...",
mm_sms_storage_get_string (ctx->storage));
- qmi_message_wms_list_messages_input_set_message_tag (
- input,
- QMI_WMS_MESSAGE_TAG_TYPE_MT_NOT_READ,
- NULL);
+ tag_type = QMI_WMS_MESSAGE_TAG_TYPE_MT_NOT_READ;
break;
case LOAD_INITIAL_SMS_PARTS_STEP_LIST_MO_SENT:
mm_dbg ("loading MO-sent messages from storage '%s'...",
mm_sms_storage_get_string (ctx->storage));
- qmi_message_wms_list_messages_input_set_message_tag (
- input,
- QMI_WMS_MESSAGE_TAG_TYPE_MO_SENT,
- NULL);
+ tag_type = QMI_WMS_MESSAGE_TAG_TYPE_MO_SENT;
break;
case LOAD_INITIAL_SMS_PARTS_STEP_LIST_MO_NOT_SENT:
mm_dbg ("loading MO-not-sent messages from storage '%s'...",
mm_sms_storage_get_string (ctx->storage));
- qmi_message_wms_list_messages_input_set_message_tag (
- input,
- QMI_WMS_MESSAGE_TAG_TYPE_MO_NOT_SENT,
- NULL);
+ tag_type = QMI_WMS_MESSAGE_TAG_TYPE_MO_NOT_SENT;
break;
case LOAD_INITIAL_SMS_PARTS_STEP_LAST:
/* All steps done */
@@ -6777,6 +6756,22 @@ load_initial_sms_parts_step (LoadInitialSmsPartsContext *ctx)
return;
}
+ /* Request to list messages in a given storage */
+ input = qmi_message_wms_list_messages_input_new ();
+ qmi_message_wms_list_messages_input_set_storage_type (
+ input,
+ mm_sms_storage_to_qmi_storage_type (ctx->storage),
+ NULL);
+ qmi_message_wms_list_messages_input_set_message_mode (
+ input,
+ QMI_WMS_MESSAGE_MODE_GSM_WCDMA,
+ NULL);
+ if (tag_type != -1)
+ qmi_message_wms_list_messages_input_set_message_tag (
+ input,
+ (QmiWmsMessageTagType)tag_type,
+ NULL);
+
qmi_client_wms_list_messages (QMI_CLIENT_WMS (ctx->client),
input,
5,