Fix memory issues 39/36739/1 accepted/tizen/tv/20150313.005116 submit/tizen_tv/20150312.120139
authorKim Tae Soo <taesoo46.kim@samsung.com>
Thu, 12 Mar 2015 12:00:38 +0000 (21:00 +0900)
committerKim Tae Soo <taesoo46.kim@samsung.com>
Thu, 12 Mar 2015 12:00:38 +0000 (21:00 +0900)
Change-Id: I92c1b1347071e51d122ceb40e133244e10917d0a
Signed-off-by: Kim Tae Soo <taesoo46.kim@samsung.com>
src/data/category_info.cpp
src/views/PlayListCtxPopup.cpp
src/views/song-layout.cpp

index c764a43..5f74381 100644 (file)
@@ -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;
                }
        }
index 3067497..04821d5 100644 (file)
@@ -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;
        }
 
index daa7d23..b5abab1 100644 (file)
@@ -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;