picojson::value event = picojson::value(picojson::object());
picojson::object& obj = event.get<picojson::object>();
- obj.insert(std::make_pair("callbackId", picojson::value(data->callbackId)));
+ obj.emplace(std::make_pair("callbackId", picojson::value(data->callbackId)));
if (PRIVACY_PRIVILEGE_MANAGER_CALL_CAUSE_ANSWER == cause) {
- obj.insert(std::make_pair("result", picojson::value(CheckRequestResultToString(result))));
- obj.insert(std::make_pair("privilege", picojson::value(privilege)));
+ obj.emplace(std::make_pair("result", picojson::value(CheckRequestResultToString(result))));
+ obj.emplace(std::make_pair("privilege", picojson::value(privilege)));
} else {
LogAndReportError(
common::PlatformResult(common::ErrorCode::ABORT_ERR, "Get callback data failed"), &obj);
picojson::value event = picojson::value(picojson::object());
picojson::object& obj = event.get<picojson::object>();
- obj.insert(std::make_pair("callbackId", picojson::value(data->callbackId)));
+ obj.emplace(std::make_pair("callbackId", picojson::value(data->callbackId)));
if (PRIVACY_PRIVILEGE_MANAGER_CALL_CAUSE_ANSWER == cause) {
picojson::value result_array = picojson::value(picojson::array());
picojson::array& array_obj = result_array.get<picojson::array>();
+ array_obj.reserve(privileges_count);
for (size_t i = 0; i < privileges_count; i++) {
picojson::value result_elem = picojson::value(picojson::object());
picojson::object& obj = result_elem.get<picojson::object>();
obj["privilege"] = picojson::value(privileges[i]);
obj["result"] = picojson::value(CheckRequestResultToString(result[i]));
- array_obj.push_back(result_elem);
+ array_obj.push_back(std::move(result_elem));
}
- obj.insert(std::make_pair("result", result_array));
+ obj.emplace(std::make_pair("result", result_array));
} else {
LogAndReportError(
common::PlatformResult(common::ErrorCode::ABORT_ERR, "Get callback data failed"), &obj);
ScopeLogger();
const picojson::array& privileges = args.get("privileges").get<picojson::array>();
- unsigned int size = static_cast<int>(privileges.size());
-
std::vector<const char*> privilege_array;
- size_t i = 0;
+ privilege_array.reserve(privileges.size());
- for (auto iter = privileges.begin(); iter != privileges.end(); ++iter, ++i) {
+ for (auto iter = privileges.begin(); iter != privileges.end(); ++iter) {
privilege_array.push_back(iter->get<std::string>().c_str());
}
- std::vector<ppm_check_result_e> results(size);
- int ret = ppm_check_permissions(privilege_array.data(), size, results.data());
+ std::vector<ppm_check_result_e> results(privileges.size());
+ int ret = ppm_check_permissions(privilege_array.data(), privileges.size(), results.data());
if (PRIVACY_PRIVILEGE_MANAGER_ERROR_NONE != ret) {
LogAndReportError(convertError(ret), &out,
picojson::value result_array = picojson::value(picojson::array());
picojson::array& array_obj = result_array.get<picojson::array>();
+ array_obj.reserve(privileges.size());
- for (size_t i = 0; i < size; i++) {
+ for (size_t i = 0; i < privileges.size(); i++) {
picojson::value result_elem = picojson::value(picojson::object());
picojson::object& obj = result_elem.get<picojson::object>();
obj["privilege"] = picojson::value(privilege_array[i]);
obj["type"] = picojson::value(CheckResultToString(results[i]));
- array_obj.push_back(result_elem);
+ array_obj.push_back(std::move(result_elem));
}
ReportSuccess(result_array, out);
ScopeLogger();
const double callback_id = args.get("callbackId").get<double>();
-
const picojson::array& privileges = args.get("privileges").get<picojson::array>();
- unsigned int size = static_cast<int>(privileges.size());
-
std::vector<const char*> privilege_array;
- size_t i = 0;
+ privilege_array.reserve(privileges.size());
- for (auto iter = privileges.begin(); iter != privileges.end(); ++iter, ++i) {
+ for (auto iter = privileges.begin(); iter != privileges.end(); ++iter) {
privilege_array.push_back(iter->get<std::string>().c_str());
}
user_data->_instance = this;
user_data->callbackId = callback_id;
- int ret = ppm_request_permissions(privilege_array.data(), size, ResponseMultipleCallback,
- static_cast<void*>(user_data));
+ int ret = ppm_request_permissions(privilege_array.data(), privileges.size(),
+ ResponseMultipleCallback, static_cast<void*>(user_data));
if (PRIVACY_PRIVILEGE_MANAGER_ERROR_NONE != ret) {
+ delete user_data;
LogAndReportError(convertError(ret), &out,
("checkPermission error: %d (%s)", ret, get_error_message(ret)));
return;