Skip to content

Commit 9a1155c

Browse files
authored
Merge pull request #3254 from eduar-hte/make_shared
Leverage std::make_unique & std::make_shared to create objects in the heap
2 parents 373ddb8 + c6c06c4 commit 9a1155c

File tree

5 files changed

+12
-12
lines changed

5 files changed

+12
-12
lines changed

headers/modsecurity/actions/action.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -105,11 +105,11 @@ class Action {
105105
}
106106

107107
if (pos == std::string::npos) {
108-
m_name = std::shared_ptr<std::string>(new std::string(data));
108+
m_name = std::make_shared<std::string>(data);
109109
return;
110110
}
111111

112-
m_name = std::shared_ptr<std::string>(new std::string(data, 0, pos));
112+
m_name = std::make_shared<std::string>(data, 0, pos);
113113
m_parser_payload = std::string(data, pos + 1, data.length());
114114

115115
if (m_parser_payload.at(0) == '\'' && m_parser_payload.size() > 2) {

src/actions/expire_var.cc

+6-6
Original file line numberDiff line numberDiff line change
@@ -65,23 +65,23 @@ bool ExpireVar::evaluate(RuleWithActions *rule, Transaction *t) {
6565

6666
std::string collection = fully_qualified_var.substr(0, posDot);
6767
std::string variable_name = fully_qualified_var.substr(posDot+1);
68-
std::unique_ptr<RunTimeString> runTimeString(new RunTimeString());
68+
auto runTimeString = std::make_unique<RunTimeString>();
6969
runTimeString->appendText(fully_qualified_var);
7070

7171
if (collection == "ip") {
72-
std::unique_ptr<modsecurity::variables::Ip_DynamicElement> ip_dynamicElement(new modsecurity::variables::Ip_DynamicElement(std::move(runTimeString)));
72+
auto ip_dynamicElement = std::make_unique<modsecurity::variables::Ip_DynamicElement>(std::move(runTimeString));
7373
ip_dynamicElement->setExpiry(t, variable_name, expirySeconds);
7474
} else if (collection == "global") {
75-
std::unique_ptr<modsecurity::variables::Global_DynamicElement> global_dynamicElement(new modsecurity::variables::Global_DynamicElement(std::move(runTimeString)));
75+
auto global_dynamicElement = std::make_unique<modsecurity::variables::Global_DynamicElement>(std::move(runTimeString));
7676
global_dynamicElement->setExpiry(t, variable_name, expirySeconds);
7777
} else if (collection == "resource") {
78-
std::unique_ptr<modsecurity::variables::Resource_DynamicElement> resource_dynamicElement(new modsecurity::variables::Resource_DynamicElement(std::move(runTimeString)));
78+
auto resource_dynamicElement = std::make_unique<modsecurity::variables::Resource_DynamicElement>(std::move(runTimeString));
7979
resource_dynamicElement->setExpiry(t, variable_name, expirySeconds);
8080
} else if (collection == "session") {
81-
std::unique_ptr<modsecurity::variables::Session_DynamicElement> session_dynamicElement(new modsecurity::variables::Session_DynamicElement(std::move(runTimeString)));
81+
auto session_dynamicElement = std::make_unique<modsecurity::variables::Session_DynamicElement>(std::move(runTimeString));
8282
session_dynamicElement->setExpiry(t, variable_name, expirySeconds);
8383
} else if (collection == "user") {
84-
std::unique_ptr<modsecurity::variables::User_DynamicElement> user_dynamicElement(new modsecurity::variables::User_DynamicElement(std::move(runTimeString)));
84+
auto user_dynamicElement = std::make_unique<modsecurity::variables::User_DynamicElement>(std::move(runTimeString));
8585
user_dynamicElement->setExpiry(t, variable_name, expirySeconds);
8686
} else {
8787
ms_dbg_a(t, 5, "Invalid collection found in expirevar expression: collection must be `ip', `global', `resource', `user' or `session'");

src/collection/backend/lmdb.cc

+1-1
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,7 @@ std::unique_ptr<std::string> LMDB::resolveFirst(const std::string& var) {
178178

179179
collectionData.setFromSerialized(reinterpret_cast<char *>(mdb_value_ret.mv_data), mdb_value_ret.mv_size);
180180
if ((!collectionData.isExpired()) && (collectionData.hasValue())) {
181-
ret = std::unique_ptr<std::string>(new std::string(collectionData.getValue()));
181+
ret = std::make_unique<std::string>(collectionData.getValue());
182182
}
183183

184184
end_get:

src/operators/operator.cc

+1-1
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ bool Operator::evaluate(Transaction *transaction, const std::string& a) {
140140

141141
Operator *Operator::instantiate(const std::string& op, const std::string& param_str) {
142142
std::string op_ = utils::string::tolower(op);
143-
std::unique_ptr<RunTimeString> param(new RunTimeString());
143+
auto param = std::make_unique<RunTimeString>();
144144
param->appendText(param_str);
145145

146146
IF_MATCH(beginswith) { return new BeginsWith(std::move(param)); }

src/run_time_string.cc

+2-2
Original file line numberDiff line numberDiff line change
@@ -31,15 +31,15 @@ namespace modsecurity {
3131

3232

3333
void RunTimeString::appendText(const std::string &text) {
34-
std::unique_ptr<RunTimeElementHolder> r(new RunTimeElementHolder);
34+
auto r = std::make_unique<RunTimeElementHolder>();
3535
r->m_string = text;
3636
m_elements.push_back(std::move(r));
3737
}
3838

3939

4040
void RunTimeString::appendVar(
4141
std::unique_ptr<modsecurity::variables::Variable> var) {
42-
std::unique_ptr<RunTimeElementHolder> r(new RunTimeElementHolder);
42+
auto r = std::make_unique<RunTimeElementHolder>();
4343
r->m_var = std::move(var);
4444
m_elements.push_back(std::move(r));
4545
m_containsMacro = true;

0 commit comments

Comments
 (0)