mirror of
https://github.com/owasp-modsecurity/ModSecurity.git
synced 2025-09-30 11:44:32 +03:00
Huge performance improvement: passing variables as pointers avoiding copies
This commit is contained in:
@@ -28,23 +28,22 @@ namespace ModSecurity {
|
||||
namespace Variables {
|
||||
namespace Variations {
|
||||
|
||||
std::list<std::pair<std::string, std::string>>
|
||||
std::list<ModSecurityStringVar *> *
|
||||
Count::evaluate(Assay *assay) {
|
||||
std::list<std::pair<std::string, std::string>> reslIn;
|
||||
std::list<std::pair<std::string, std::string>> reslOut;
|
||||
std::pair<std::string, std::string> pair;
|
||||
std::list<ModSecurityStringVar *> *reslIn;
|
||||
std::list<ModSecurityStringVar *> *reslOut = new std::list<ModSecurityStringVar *>();
|
||||
int count = 0;
|
||||
|
||||
reslIn = var->evaluate(assay);
|
||||
|
||||
for (auto &a : reslIn) {
|
||||
for (auto &a : *reslIn) {
|
||||
count++;
|
||||
}
|
||||
|
||||
std::string res = std::to_string(count);
|
||||
|
||||
pair = std::make_pair(std::string(var->name), std::string(res));
|
||||
reslOut.push_back(pair);
|
||||
reslOut->push_back(new ModSecurityStringVar(std::string(var->name),
|
||||
std::string(res)));
|
||||
|
||||
return reslOut;
|
||||
}
|
||||
|
Reference in New Issue
Block a user