#include <algorithm>
#include <map>
-#include <vector>
+#include <set>
#include "common/utils/glist_range.h"
if (tag.empty())
return false;
- std::vector<std::string> appid_list;
+ std::set<std::string> appid_list;
if (action_type == ActionType::Upgrade) {
if (pkgmgrinfo_plugininfo_foreach_plugininfo(manifest->package,
CategoryPlugin::kType,
plugin_info_.name().c_str(),
[](const char*, const char* appid, const char*,
const char*, void* user_data) -> int {
- auto* list =
- static_cast<std::vector<std::string>*>(user_data);
- list->emplace_back(std::string(appid));
+ auto* list = static_cast<std::set<std::string>*>(user_data);
+ list->emplace(std::string(appid));
return 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<application_x*>(manifest->application)) {
if (!category_list) {
if (action_type != ActionType::Upgrade)
continue;
- auto iter = std::lower_bound(appid_list.begin(), appid_list.end(),
- app->appid);
- if (iter != appid_list.end() && *iter == app->appid) {
+ auto iter = appid_list.find(app->appid);
+ if (iter != appid_list.end()) {
name = GetFunctionName(ActionType::Removed);
- iter = appid_list.erase(iter);
+ appid_list.erase(iter);
category_list = nullptr;
} else {
continue;
g_list_free_full(category_list, &ClearCategoryDetail);
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, category_list);
#include <algorithm>
#include <map>
-#include <vector>
+#include <set>
#include "common/utils/glist_range.h"
if (tag.empty())
return false;
+ std::set<std::string> 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<std::vector<std::string>*>(user_data);
- appid_list->emplace_back(std::string(appid));
+ auto* list = static_cast<std::set<std::string>*>(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<application_x*>(manifest->application)) {
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);
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) {