Fix an issue not to call download_destroy()
[platform/framework/native/content.git] / src / FCnt_PlayListImpl.cpp
index 4640a88..ba3f2c9 100644 (file)
@@ -1,5 +1,4 @@
 //
-// Open Service Platform
 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
 //
 // Licensed under the Apache License, Version 2.0 (the License);
@@ -91,14 +90,15 @@ _PlayListImpl::Construct(const Tizen::Base::String& playListName, bool isAdd)
 
        if (isAdd == true)
        {
-               std::unique_ptr<media_playlist_s, PlayListHandleDeleter> pPlaylistHandle;
-
                std::unique_ptr<char[]> pInputCond(_StringConverter::CopyToCharArrayN(playListName));
                SysTryReturnResult(NID_CNT, pInputCond, E_OUT_OF_MEMORY, "The memory is insufficient.");
 
-               media_playlist_h tempHandle = pPlaylistHandle.get();
+               media_playlist_h tempHandle = null;
                ret = media_playlist_insert_to_db(pInputCond.get(), &tempHandle);
                r = MapCoreErrorToNativeResult(ret);
+
+               std::unique_ptr<media_playlist_s, PlayListHandleDeleter> pPlaylistHandle(tempHandle);
+               SysTryReturnResult(NID_CNT, pPlaylistHandle != null, E_OUT_OF_MEMORY, "pPlaylistHandle is null.");
        }
 
        return r;
@@ -108,16 +108,19 @@ result
 _PlayListImpl::CreateFilterUsingContentId(const ContentId& contentId) const
 {
        std::unique_ptr<char[]> pInputCond;
-       std::unique_ptr<filter_h, FilterHandleDeleter> pFilterHandle(new (std::nothrow) filter_h);
+       filter_h tempFilter = NULL;
        String uuidStr = L"";
        String playListName = L"";
        String inputCondition = L"MEDIA_ID = ";
        String inputListNameCondition = L"PLAYLIST_NAME = ";
 
-       int ret = media_filter_create(pFilterHandle.get());
+       int ret = media_filter_create(&tempFilter);
        result r = MapCoreErrorToNativeResult(ret);
        SysTryReturnResult(NID_CNT, ret == MEDIA_CONTENT_ERROR_NONE, r, "Failed to perform media_filter_create operation.");
 
+       std::unique_ptr<filter_s, FilterHandleDeleter> pFilterHandle(tempFilter);
+       SysTryReturnResult(NID_CNT, pFilterHandle != null, E_OUT_OF_MEMORY, "pFilterHandle is null.");
+
        uuidStr = contentId.ToString();
        r = uuidStr.Insert('"', 0);
        SysTryReturnResult(NID_CNT, r == E_SUCCESS, r, "Failed to perform Insert operation for uuidStr.");
@@ -150,12 +153,9 @@ _PlayListImpl::CreateFilterUsingContentId(const ContentId& contentId) const
 
                SysLog(NID_CNT, "pInputCond = %s", pInputCond.get());
 
-               if ((pInputCond.get())[0])
-               {
-                       ret = media_filter_set_condition(*(pFilterHandle.get()), pInputCond.get(), MEDIA_CONTENT_COLLATE_DEFAULT);
-                       r = MapCoreErrorToNativeResult(ret);
-                       SysTryReturnResult(NID_CNT, ret == MEDIA_CONTENT_ERROR_NONE, r, "Failed to perform media_filter_set_condition operation.");
-               }
+               ret = media_filter_set_condition(pFilterHandle.get(), pInputCond.get(), MEDIA_CONTENT_COLLATE_DEFAULT);
+               r = MapCoreErrorToNativeResult(ret);
+               SysTryReturnResult(NID_CNT, ret == MEDIA_CONTENT_ERROR_NONE, r, "Failed to perform media_filter_set_condition operation.");
        }
 
        __pFilterHandle.reset(pFilterHandle.release());
@@ -169,13 +169,15 @@ _PlayListImpl::CreateFilter(const Tizen::Base::String& playListName)const
        std::unique_ptr<char[]> pInputCond;
        String inputCondition = L"PLAYLIST_NAME = ";
        String nameExpr(playListName);
+       filter_h tempFilter = NULL;
 
-       std::unique_ptr<filter_h, FilterHandleDeleter> pFilterHandle(new (std::nothrow) filter_h);
-
-       int ret = media_filter_create(pFilterHandle.get());
+       int ret = media_filter_create(&tempFilter);
        result r = MapCoreErrorToNativeResult(ret);
        SysTryReturnResult(NID_CNT, ret == MEDIA_CONTENT_ERROR_NONE, r, "Failed to perform media_filter_create operation.");
 
+       std::unique_ptr<filter_s, FilterHandleDeleter> pFilterHandle(tempFilter);
+       SysTryReturnResult(NID_CNT, pFilterHandle != null, E_OUT_OF_MEMORY, "pFilterHandle is null.");
+
        if (!nameExpr.IsEmpty())
        {
                r = nameExpr.Replace("\'", "''");
@@ -199,12 +201,9 @@ _PlayListImpl::CreateFilter(const Tizen::Base::String& playListName)const
 
                SysLog(NID_CNT, "pInputCond is [%s]", pInputCond.get());
 
-               if ((pInputCond.get())[0])
-               {
-                       ret = media_filter_set_condition(*(pFilterHandle.get()), pInputCond.get(), MEDIA_CONTENT_COLLATE_DEFAULT);
-                       r = MapCoreErrorToNativeResult(ret);
-                       SysTryReturnResult(NID_CNT, ret == MEDIA_CONTENT_ERROR_NONE, r, "Failed to perform media_filter_set_condition operation.");
-               }
+               ret = media_filter_set_condition(pFilterHandle.get(), pInputCond.get(), MEDIA_CONTENT_COLLATE_DEFAULT);
+               r = MapCoreErrorToNativeResult(ret);
+               SysTryReturnResult(NID_CNT, ret == MEDIA_CONTENT_ERROR_NONE, r, "Failed to perform media_filter_set_condition operation.");
        }
 
        __pFilterHandle.reset(pFilterHandle.release());
@@ -226,7 +225,7 @@ _PlayListImpl::GetPlayListItemCount(const Tizen::Base::String& playlistName) con
        SysTryReturn(NID_CNT, r == E_SUCCESS, 0, E_DATABASE, "[E_DATABASE] Failed to perform CreateFilter operation.");
 
        pTemp = pItemList.get();
-       ret = media_playlist_foreach_playlist_from_db(*(__pFilterHandle.get()), MediaPlayListImplCb, &pTemp);
+       ret = media_playlist_foreach_playlist_from_db(__pFilterHandle.get(), MediaPlayListImplCb, &pTemp);
        r = MapCoreDatabaseErrorToNativeResult(ret);
        SysTryReturn(NID_CNT, r == E_SUCCESS , 0, r,
                        "[%s] Failed to perform media_playlist_foreach_playlist_from_db operation.", GetErrorMessage(r));
@@ -270,7 +269,7 @@ _PlayListImpl::GetContentInfoListN(const Tizen::Base::String& playlistName) cons
        SysTryReturn(NID_CNT, r == E_SUCCESS, NULL, E_DATABASE, "[E_DATABASE] Failed to perform CreateFilter operation.");
 
        pTemp = pItemList.get();
-       ret = media_playlist_foreach_playlist_from_db(*(__pFilterHandle.get()), MediaPlayListImplCb, &pTemp);
+       ret = media_playlist_foreach_playlist_from_db(__pFilterHandle.get(), MediaPlayListImplCb, &pTemp);
        r = MapCoreDatabaseErrorToNativeResult(ret);
        SysTryReturn(NID_CNT, r == E_SUCCESS , NULL, r,
                        "[%s] Failed to perform media_playlist_foreach_playlist_from_db operation.", GetErrorMessage(r));
@@ -535,7 +534,7 @@ _PlayListImpl::RemoveItem(const ContentId& contentId)
                SysTryReturnResult(NID_CNT, !IsFailed(r), r, "Failed to perform media_playlist_get_playlist_id operation.");
 
                pTemp = pItemList.get();
-               int ret = media_playlist_foreach_media_from_db(playlistId, *(__pFilterHandle.get()), PlaylistImplItemCb, &pTemp);
+               int ret = media_playlist_foreach_media_from_db(playlistId, __pFilterHandle.get(), PlaylistImplItemCb, &pTemp);
                result r = MapCoreErrorToNativeResult(ret);
                SysTryReturnResult(NID_CNT, r == E_SUCCESS , r, "Failed to perform media_playlist_foreach_media_from_db operation.");
 
@@ -627,7 +626,7 @@ _PlayListImpl::SetorGetPlayOrder(const ContentId& contentId, int& playOrder, boo
                SysTryReturnResult(NID_CNT, !IsFailed(r), r, "Failed to perform media_playlist_get_playlist_id operation.");
 
                pTemp = pItemList.get();
-               int ret = media_playlist_foreach_media_from_db(playlistId, *(__pFilterHandle.get()), PlaylistImplItemCb, &pTemp);
+               int ret = media_playlist_foreach_media_from_db(playlistId, __pFilterHandle.get(), PlaylistImplItemCb, &pTemp);
                result r = MapCoreErrorToNativeResult(ret);
                SysTryReturnResult(NID_CNT, r == E_SUCCESS , r, "media_playlist_foreach_media_from_db failed.");
 
@@ -686,7 +685,7 @@ _PlayListImpl::GetPlayListHandle(media_playlist_h* pPlayListHandle) const
        GList* pTemp = NULL;
 
        pTemp = pItemList.get();
-       int ret = media_playlist_foreach_playlist_from_db(*(__pFilterHandle.get()), MediaPlayListImplCb, &pTemp);
+       int ret = media_playlist_foreach_playlist_from_db(__pFilterHandle.get(), MediaPlayListImplCb, &pTemp);
        result r = MapCoreErrorToNativeResult(ret);
        SysTryReturnResult(NID_CNT, r == E_SUCCESS , r, "Failed to perform media_playlist_foreach_playlist_from_db operation.");