X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Fcommon%2Fplugins%2Fmetadata_plugin.cc;h=3cd41487ce2dbd6d47b337a726f0ed0deb96ea0c;hb=f1806004819258042be0508977a09e0b91e73ba7;hp=0cf2a53fc14f3f877f85a1a46c4396a9e7cf8164;hpb=992e6bf05f455204d8b3c45c9c091b08311e126f;p=platform%2Fcore%2Fappfw%2Fapp-installers.git diff --git a/src/common/plugins/metadata_plugin.cc b/src/common/plugins/metadata_plugin.cc index 0cf2a53..3cd4148 100644 --- a/src/common/plugins/metadata_plugin.cc +++ b/src/common/plugins/metadata_plugin.cc @@ -9,7 +9,7 @@ #include #include -#include +#include #include "common/utils/glist_range.h" @@ -94,22 +94,21 @@ bool MetadataPlugin::Run(xmlDocPtr /*doc_ptr*/, manifest_x* manifest, if (tag.empty()) return false; + std::set appid_list; if (action_type == ActionType::Upgrade) { if (pkgmgrinfo_plugininfo_foreach_plugininfo(manifest->package, MetadataPlugin::kType, plugin_info_.name().c_str(), [](const char*, const char* appid, const char*, const char*, void* user_data) -> int { - auto* appid_list = - static_cast*>(user_data); - appid_list->emplace_back(std::string(appid)); + auto* list = static_cast*>(user_data); + list->emplace(std::string(appid)); return PMINFO_R_OK; }, - &appid_list_) != PMINFO_R_OK) { + &appid_list) != PMINFO_R_OK) { LOG(ERROR) << "Failed to get previous execution info"; return false; } - std::sort(appid_list_.begin(), appid_list_.end()); } for (application_x* app : GListRange(manifest->application)) { @@ -156,10 +155,7 @@ bool MetadataPlugin::Run(xmlDocPtr /*doc_ptr*/, manifest_x* manifest, g_list_free_full(md_list, &ClearMetadataDetail); return false; } - auto iter = std::lower_bound(appid_list_.begin(), appid_list_.end(), - app->appid); - if (iter != appid_list_.end() && *iter == app->appid) - appid_list_.erase(iter); + appid_list.erase(app->appid); } int result = 0; Exec(name, &result, manifest->package, app->appid, md_list); @@ -177,7 +173,7 @@ bool MetadataPlugin::Run(xmlDocPtr /*doc_ptr*/, manifest_x* manifest, name = GetFunctionName(action_type); else name = GetFunctionName(ActionType::Removed); - for (const auto& appid : appid_list_) { + for (const auto& appid : appid_list) { int result = 0; Exec(name, &result, manifest->package, appid.c_str(), nullptr); if (result) {