From bf098ce68cbf0b52a268bf53c97299695bfb5875 Mon Sep 17 00:00:00 2001 From: Gwangbok Kim Date: Tue, 22 Oct 2013 16:23:51 +0900 Subject: [PATCH] fix memory leak Change-Id: I893d257a5e16549148956e55cc35596f56a6fbe8 Signed-off-by: Gwangbok Kim --- project/src/AddressbookListPopup.cpp | 22 +++++++++++++++------- project/src/CategoryRemoveMemberForm.cpp | 5 +++++ project/src/CreateContactForm.cpp | 5 +++-- project/src/EditContactForm.cpp | 6 ++++++ project/src/MainForm.cpp | 5 ++--- 5 files changed, 31 insertions(+), 12 deletions(-) diff --git a/project/src/AddressbookListPopup.cpp b/project/src/AddressbookListPopup.cpp index c53631b..a413f69 100644 --- a/project/src/AddressbookListPopup.cpp +++ b/project/src/AddressbookListPopup.cpp @@ -41,6 +41,11 @@ AddressbookListPopup::AddressbookListPopup(void) AddressbookListPopup::~AddressbookListPopup(void) { + if (__pAddressbookList != null) + { + __pAddressbookList->RemoveAll(true); + delete __pAddressbookList; + } } result @@ -97,12 +102,6 @@ AddressbookListPopup::OnTerminating(void) { result r = E_SUCCESS; - if (__pAddressbookList != null) - { - __pAddressbookList->RemoveAll(true); - delete __pAddressbookList; - } - return r; } @@ -232,9 +231,18 @@ AddressbookListPopup::GetAddressbookList() AddressbookManager* pAddressbookMgr = AddressbookManager::GetInstance(); - __pAddressbookList = pAddressbookMgr->GetAllAddressbooksN(); + IList* pAddressbookList = pAddressbookMgr->GetAllAddressbooksN(); + r = GetLastResult(); TryReturn(!IsFailed(r), r, "Failed to get addressbook list. (%s)", GetErrorMessage(r)); + if (__pAddressbookList != null) + { + __pAddressbookList->RemoveAll(true); + delete __pAddressbookList; + } + + __pAddressbookList = pAddressbookList; + return r; } diff --git a/project/src/CategoryRemoveMemberForm.cpp b/project/src/CategoryRemoveMemberForm.cpp index 4984d95..dbcc01a 100644 --- a/project/src/CategoryRemoveMemberForm.cpp +++ b/project/src/CategoryRemoveMemberForm.cpp @@ -111,6 +111,11 @@ CategoryRemoveMemberForm::OnTerminating(void) delete __pContactList; } + if (__pCategory != null) + { + delete __pCategory; + } + return r; } diff --git a/project/src/CreateContactForm.cpp b/project/src/CreateContactForm.cpp index 5562474..77cb154 100644 --- a/project/src/CreateContactForm.cpp +++ b/project/src/CreateContactForm.cpp @@ -213,7 +213,6 @@ CreateContactForm::OnTerminating(void) if (__pAddressbookListPopup != null) { delete __pAddressbookListPopup; - __pAddressbookListPopup = null; } return r; @@ -290,7 +289,6 @@ CreateContactForm::OnUserEventReceivedN(RequestId requestId, IList* pArgs) if (__pAddressbookListPopup != null) { delete __pAddressbookListPopup; - __pAddressbookListPopup = null; } if (pArgs) @@ -299,6 +297,7 @@ CreateContactForm::OnUserEventReceivedN(RequestId requestId, IList* pArgs) AppAssert(pInteger); __addressbookId = pInteger->ToInt(); + pArgs->RemoveAll(true); delete pArgs; @@ -336,6 +335,8 @@ CreateContactForm::GetAddressbookName(AddressbookId addressbookId) tokenizer.GetNextToken(name); } + delete pAddressbook; + return name; } diff --git a/project/src/EditContactForm.cpp b/project/src/EditContactForm.cpp index e4ef185..f88e149 100644 --- a/project/src/EditContactForm.cpp +++ b/project/src/EditContactForm.cpp @@ -201,6 +201,12 @@ EditContactForm::OnTerminating(void) { result r = E_SUCCESS; + if (__pContactList != null) + { + r = __pContactList->RemoveAll(true); + delete __pContactList; + } + return r; } diff --git a/project/src/MainForm.cpp b/project/src/MainForm.cpp index ff0922c..a2074ba 100644 --- a/project/src/MainForm.cpp +++ b/project/src/MainForm.cpp @@ -286,12 +286,11 @@ MainForm::OnSceneDeactivated(const Tizen::Ui::Scenes::SceneId& currentSceneId, result MainForm::GetPersonList(void) { - result r = E_SUCCESS; - AddressbookManager* pAddressbookMgr = AddressbookManager::GetInstance(); + IList* pPersonList = pAddressbookMgr->GetAllPersonsN(); - r = GetLastResult(); + result r = GetLastResult(); TryReturn(!IsFailed(r), r, "Failed to get the person list (%s).", GetErrorMessage(r)); if (__pPersonList != null) -- 2.7.4