fix memory leak
authorjungmin76.park <jungmin76.park@samsung.com>
Fri, 26 Apr 2013 10:12:40 +0000 (19:12 +0900)
committerjungmin76.park <jungmin76.park@samsung.com>
Fri, 26 Apr 2013 10:12:40 +0000 (19:12 +0900)
Change-Id: Iefec5a849f0b8ab177f42e84251f1bd83f545928
Signed-off-by: jungmin76.park <jungmin76.park@samsung.com>
src/FShell_AppWidgetProviderManagerImpl.cpp

index 0c368c5..911552f 100644 (file)
@@ -162,8 +162,8 @@ const int LIFE_DURATION_MIN = 30000;
 result
 _AppWidgetProviderManagerImpl::ValidateApplicationAttributeForAppWidget(void)
 {
-       HashMapT<String, _AppFeatureInfoImpl*>* pInfo = _PackageManagerImpl::GetInstance()->GetPackageAppFeatureMapN(_AppInfo::GetPackageId(), _AppInfo::GetAppExecutableName());
-       SysTryReturnResult(NID_SHELL, pInfo, E_SYSTEM, "Failed to invoke _PackageManagerImpl::GetPackageAppFeatureMapN()");
+       unique_ptr<HashMapT<String, _AppFeatureInfoImpl*> > pInfo(_PackageManagerImpl::GetInstance()->GetPackageAppFeatureMapN(_AppInfo::GetPackageId(), _AppInfo::GetAppExecutableName()) );
+       SysTryReturnResult(NID_SHELL, pInfo.get(), E_SYSTEM, "Failed to invoke _PackageManagerImpl::GetPackageAppFeatureMapN()");
 
        _AppFeatureInfoImpl* pFeature = null;
 
@@ -182,6 +182,7 @@ _AppWidgetProviderManagerImpl::ValidateApplicationAttributeForAppWidget(void)
        SysTryReturnResult(NID_SHELL, !IsFailed(r), E_INVALID_OPERATION, "Failed to parse %ls attribute for the ServiceApp in package information.", LIFE_DURATION_KEY );
 //     SysTryReturnResult(NID_SHELL, lifeDuration <= LIFE_DURATION_MIN, E_INVALID_OPERATION, "%ls attribute value should be less than '%d' to be an application that providing AppWidget, but value is %d", LIFE_DURATION_KEY, LIFE_DURATION_MIN, lifeDuration );
 
+       _DeleteCollectionMapValue<String, _AppFeatureInfoImpl>(*pInfo);
        return E_SUCCESS;
 }