From c004a84f84265bf54ef3371ac48273879d560241 Mon Sep 17 00:00:00 2001 From: Chocobo1 Date: Sun, 4 Aug 2019 17:05:19 +0800 Subject: [PATCH] Avoid redundant actions/conversions QSet::contains(QSet &) isn't doing anything magical it still has the usual loop inside, so lets just save all the container conversions and do the loop ourselves. --- src/webui/api/apicontroller.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/webui/api/apicontroller.cpp b/src/webui/api/apicontroller.cpp index 40de8dcdf..140ade32d 100644 --- a/src/webui/api/apicontroller.cpp +++ b/src/webui/api/apicontroller.cpp @@ -28,6 +28,8 @@ #include "apicontroller.h" +#include + #include #include @@ -69,9 +71,13 @@ const DataMap &APIController::data() const void APIController::checkParams(const QSet &requiredParams) const { - const QSet params {this->params().keys().toSet()}; + const bool hasAllRequiredParams = std::all_of(requiredParams.cbegin(), requiredParams.cend() + , [this](const QString &requiredParam) + { + return params().contains(requiredParam); + }); - if (!params.contains(requiredParams)) + if (!hasAllRequiredParams) throw APIError(APIErrorType::BadParams); }