From: Pawel Andruszkiewicz
Date: Tue, 9 Jun 2015 14:05:03 +0000 (+0200)
Subject: [Messaging] Fixed memory handling in findMessages().
X-Git-Tag: submit/tizen_mobile/20150612.133019^2~2^2~9^2
X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=29bfaddf2d9c805121431b9dff60847913c4d4d0;p=platform%2Fcore%2Fapi%2Fwebapi-plugins.git
[Messaging] Fixed memory handling in findMessages().
Prevent CID: 398610, 401216.
[Verification] Pass rate should not change.
Change-Id: Iecc0841c9216d95ce4d4d009105c74eb711e22ab
Signed-off-by: Pawel Andruszkiewicz
---
diff --git a/src/messaging/short_message_manager.cc b/src/messaging/short_message_manager.cc
index face56a5..d3b516a2 100755
--- a/src/messaging/short_message_manager.cc
+++ b/src/messaging/short_message_manager.cc
@@ -987,12 +987,15 @@ void ShortMsgManager::findMessages(FindMsgCallbackUserData* callback)
LoggerD("Found %d messages", msgListCount);
msg_struct_t msg;
- msg_struct_t sendOpt;
+ msg_struct_t send_opt;
msg_error_t err;
for (int i = 0; i < msgListCount; i++) {
msg = msg_create_struct(MSG_STRUCT_MESSAGE_INFO);
- sendOpt = msg_create_struct(MSG_STRUCT_SENDOPT);
- err = msg_get_message(m_msg_handle, messagesIds.at(i), msg, sendOpt);
+ send_opt = msg_create_struct(MSG_STRUCT_SENDOPT);
+ std::unique_ptr msg_ptr(&msg, msg_release_struct);
+ std::unique_ptr send_opt_ptr(&send_opt, msg_release_struct);
+
+ err = msg_get_message(m_msg_handle, messagesIds.at(i), msg, send_opt);
if (MSG_SUCCESS != err) {
LoggerE("Failed to get platform message structure: %d", err);
@@ -1000,20 +1003,16 @@ void ShortMsgManager::findMessages(FindMsgCallbackUserData* callback)
break;
}
- std::shared_ptr message;
- Message* message_ptr = nullptr;
- PlatformResult ret = Message::convertPlatformShortMessageToObject(msg, &message_ptr);
+ Message* message = nullptr;
+ PlatformResult ret = Message::convertPlatformShortMessageToObject(msg, &message);
if (ret.IsError() && ret.error_code() != ErrorCode::INVALID_VALUES_ERR) {
LoggerE("Cannot get platform Message structure");
callback->SetError(PlatformResult(ErrorCode::UNKNOWN_ERR, "Cannot get platform Message structure"));
break;
}
if (!callback->isError()) {
- message.reset(message_ptr);
- callback->addMessage(message);
+ callback->addMessage(std::shared_ptr{message});
LoggerD("Created message with id %d:", messagesIds[i]);
- msg_release_struct(&sendOpt);
- msg_release_struct(&msg);
}
}
}