From f84f43ac6b8da83dae04f0037ddebe3c7e00b367 Mon Sep 17 00:00:00 2001 From: Kim Tae Soo Date: Thu, 12 Mar 2015 21:00:38 +0900 Subject: [PATCH] Fix memory issues Change-Id: I92c1b1347071e51d122ceb40e133244e10917d0a Signed-off-by: Kim Tae Soo --- src/data/category_info.cpp | 9 ++++++--- src/views/PlayListCtxPopup.cpp | 11 +++++++++++ src/views/song-layout.cpp | 4 +++- 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/src/data/category_info.cpp b/src/data/category_info.cpp index c764a43..5f74381 100644 --- a/src/data/category_info.cpp +++ b/src/data/category_info.cpp @@ -48,8 +48,10 @@ CCategoryInfo::CListMember *CCategoryInfo::m_MemberDuplicate(CListMember *member return NULL; item->memberId = member->memberId; - item->mediaId = (char *)calloc(1, strlen(member->mediaId) + 1); - strcpy(item->mediaId, member->mediaId); + if (member->mediaId) { + item->mediaId = (char *)calloc(1, strlen(member->mediaId) + 1); + strcpy(item->mediaId, member->mediaId); + } return item; } @@ -92,7 +94,8 @@ void CCategoryInfo::Destroy(void) item = (CListMember*)obj; // This value is from media_info_get_media_id. // So should be freed with free(). - free(item->mediaId); + if (item->mediaId) + free(item->mediaId); delete item; } } diff --git a/src/views/PlayListCtxPopup.cpp b/src/views/PlayListCtxPopup.cpp index 3067497..04821d5 100644 --- a/src/views/PlayListCtxPopup.cpp +++ b/src/views/PlayListCtxPopup.cpp @@ -94,6 +94,7 @@ bool CPlayListCtxPopup::Create(Evas_Object* base, const SCallback* callback, Ein if (m->listSize == 0) { _DBG("Playlist is empty."); delete m; + m = NULL; return false; } @@ -117,7 +118,17 @@ bool CPlayListCtxPopup::Create(Evas_Object* base, const SCallback* callback, Ein bool r = CCtxPopup::Create(base, callback, true); if (r == false) { _ERR("CCtxPopup::Create failed"); + for (i = 0; i < m->listSize; i++) { + delete[] m->settingTexts[i]; + delete[] m->btnIds[i]; + } + + delete[] m->settingTexts; + delete[] m->btnIds; + delete[] m->dbIds; delete m; + + m = NULL; return false; } diff --git a/src/views/song-layout.cpp b/src/views/song-layout.cpp index daa7d23..b5abab1 100644 --- a/src/views/song-layout.cpp +++ b/src/views/song-layout.cpp @@ -588,7 +588,9 @@ void CSongLayout::Destroy(void) CExtBaseLayout::Destroy(); evas_object_del(Layout()); - free(m->ctxtinfo); + if (m->ctxtinfo) + free(m->ctxtinfo); + delete[] m->uri; delete m; m = NULL; -- 2.7.4