[PPM] Removing unnecessary static casts 41/193541/2
authorSzymon Jastrzebski <s.jastrzebsk@partner.samsung.com>
Wed, 21 Nov 2018 16:12:23 +0000 (17:12 +0100)
committerSzymon Jastrzebski <s.jastrzebsk@partner.samsung.com>
Wed, 21 Nov 2018 16:12:23 +0000 (17:12 +0100)
+ SDL-42
+ Useless variables removed
+ Fixed memory leak

[Verification] TCT PPM 100%

Change-Id: Iccc3d6875bae6c2883f44977c22db812d73e5d01
Signed-off-by: Szymon Jastrzebski <s.jastrzebsk@partner.samsung.com>
src/common/common.gyp
src/ppm/ppm_instance.cc

index f65dd109c8dae390b00cf51b85ee8db650f79231..be35db29356d2a52846edb6bfd29fd23d3e031e7 100644 (file)
           ],
         },
       },
+      'defines': ['PICOJSON_USE_RVALUE_REFERENCE'],
     },
   ],
-  'defines': ['PICOJSON_USE_RVALUE_REFERENCE'],
 }
index be7d41554be05adf707f356269b7eccc1442f979..039e430398dc3bfda737c9b5f239f10a22a89718 100644 (file)
@@ -117,11 +117,11 @@ void PPMInstance::ResponseCallback(ppm_call_cause_e cause, ppm_request_result_e
   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);
@@ -140,20 +140,21 @@ void PPMInstance::ResponseMultipleCallback(ppm_call_cause_e cause,
   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);
@@ -184,17 +185,15 @@ void PPMInstance::checkPermissions(const picojson::value& args, picojson::object
   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,
@@ -205,15 +204,16 @@ void PPMInstance::checkPermissions(const picojson::value& args, picojson::object
 
   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);
@@ -247,14 +247,11 @@ void PPMInstance::requestPermissions(const picojson::value& args, picojson::obje
   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());
   }
 
@@ -262,10 +259,11 @@ void PPMInstance::requestPermissions(const picojson::value& args, picojson::obje
   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;