From: Duyoung Jang Date: Thu, 18 Apr 2013 13:41:46 +0000 (+0900) Subject: Fix GetPrivilegeListN() API X-Git-Tag: accepted/tizen_2.1/20130425.034849~39 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=1e085c02b4a14822e5f36a6a2d04b2e8e0de9f6a;p=framework%2Fosp%2Fappfw.git Fix GetPrivilegeListN() API Change-Id: I71528d5dd0b7545ef051c7800cf51f81faff5ec2 Signed-off-by: Duyoung Jang --- diff --git a/src/app/package/FAppPkg_PackageInfoImpl.cpp b/src/app/package/FAppPkg_PackageInfoImpl.cpp index 4750878..ae76365 100755 --- a/src/app/package/FAppPkg_PackageInfoImpl.cpp +++ b/src/app/package/FAppPkg_PackageInfoImpl.cpp @@ -468,25 +468,33 @@ _PackageInfoImpl::GetPrivilegeListN(void) const result r = E_SUCCESS; - ArrayList* pPrivilegeList = new (std::nothrow) ArrayList; + std::unique_ptr< ArrayList > pPrivilegeList(new (std::nothrow) ArrayList); SysTryReturn(NID_APP, pPrivilegeList, null, E_OUT_OF_MEMORY, "pPrivilegeList must not be null."); pPrivilegeList->Construct(); for (int i = 0; i < __pPrivilegeList->GetCount(); i++) { - String* pPrivilege = dynamic_cast (__pPrivilegeList->GetAt(i)); + String* pPrivilege = dynamic_cast < String* >(__pPrivilegeList->GetAt(i)); if (pPrivilege) { - PrivilegeInfo* pPrivilegeInfo = new (std::nothrow) PrivilegeInfo; + std::unique_ptr< PrivilegeInfo > pPrivilegeInfo(new (std::nothrow) PrivilegeInfo); SysTryReturn(NID_APP, pPrivilegeInfo, null, E_OUT_OF_MEMORY, "pPrivilegeInfo must not be null."); - pPrivilegeInfo->Construct(*pPrivilege); + r = pPrivilegeInfo->Construct(*pPrivilege); + SysTryReturn(NID_APP, !IsFailed(r), null, E_SYSTEM, "pPrivilegeInfo->Construct() failed."); - r = pPrivilegeList->Add(*pPrivilegeInfo); + r = pPrivilegeList->Add(*pPrivilegeInfo.release()); + SysTryReturn(NID_APP, !IsFailed(r), null, E_SYSTEM, "pPrivilegeList->Add() failed."); } } - return pPrivilegeList; + if (pPrivilegeList->GetCount() <= 0) + { + SysLog(NID_APP, "pPrivilegeList->GetCount() is invalid."); + return null; + } + + return pPrivilegeList.release(); } result