diff options
author | Aleksander Morgado <aleksander@lanedo.com> | 2012-09-11 15:47:39 +0200 |
---|---|---|
committer | Aleksander Morgado <aleksander@lanedo.com> | 2012-09-14 07:05:25 +0200 |
commit | 628f7e41a481756950cf896e326c5050ef4c1489 (patch) | |
tree | 3eb98eade9c1ddd0c0cfc95f529519ec9a6da406 /src/mm-sms-list.c | |
parent | 4f1991e2bab533176d0e720aee0bbe7ce755cc21 (diff) |
sms-list: don't look for duplicate parts if index is unknown
Diffstat (limited to 'src/mm-sms-list.c')
-rw-r--r-- | src/mm-sms-list.c | 28 |
1 files changed, 19 insertions, 9 deletions
diff --git a/src/mm-sms-list.c b/src/mm-sms-list.c index 02997365..5bb0e924 100644 --- a/src/mm-sms-list.c +++ b/src/mm-sms-list.c @@ -300,7 +300,8 @@ mm_sms_list_take_part (MMSmsList *self, ctx.storage = storage; /* Ensure we don't have already taken a part with the same index */ - if (g_list_find_custom (self->priv->list, + if (mm_sms_part_get_index (part) != SMS_PART_INVALID_INDEX && + g_list_find_custom (self->priv->list, &ctx, (GCompareFunc)cmp_sms_by_part_index_and_storage)) { g_set_error (error, @@ -313,18 +314,27 @@ mm_sms_list_take_part (MMSmsList *self, /* Did we just get a part of a multi-part SMS? */ if (mm_sms_part_should_concat (part)) { - mm_dbg ("SMS part at '%s/%u' is from a multipart SMS (reference: '%u', sequence: '%u')", - mm_sms_storage_get_string (storage), - mm_sms_part_get_index (part), - mm_sms_part_get_concat_reference (part), - mm_sms_part_get_concat_sequence (part)); + if (mm_sms_part_get_index (part) != SMS_PART_INVALID_INDEX) + mm_dbg ("SMS part at '%s/%u' is from a multipart SMS (reference: '%u', sequence: '%u')", + mm_sms_storage_get_string (storage), + mm_sms_part_get_index (part), + mm_sms_part_get_concat_reference (part), + mm_sms_part_get_concat_sequence (part)); + else + mm_dbg ("SMS part (not stored) is from a multipart SMS (reference: '%u', sequence: '%u')", + mm_sms_part_get_concat_reference (part), + mm_sms_part_get_concat_sequence (part)); + return take_multipart (self, part, state, storage, error); } /* Otherwise, we build a whole new single-part MMSms just from this part */ - mm_dbg ("SMS part at '%s/%u' is from a singlepart SMS", - mm_sms_storage_get_string (storage), - mm_sms_part_get_index (part)); + if (mm_sms_part_get_index (part) != SMS_PART_INVALID_INDEX) + mm_dbg ("SMS part at '%s/%u' is from a singlepart SMS", + mm_sms_storage_get_string (storage), + mm_sms_part_get_index (part)); + else + mm_dbg ("SMS part (not stored) is from a singlepart SMS"); return take_singlepart (self, part, state, storage, error); } |