Skip to content

Commit 6faf6d7

Browse files
committed
Removed unnecessary usage of heap-allocated VariableValue (m_var)
- Removed unused methods
1 parent dc0a06f commit 6faf6d7

File tree

2 files changed

+9
-58
lines changed

2 files changed

+9
-58
lines changed

headers/modsecurity/anchored_variable.h

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -47,23 +47,11 @@ class AnchoredVariable {
4747
AnchoredVariable(const AnchoredVariable &a) = delete;
4848
AnchoredVariable &operator= (const AnchoredVariable &a) = delete;
4949

50-
/*
51-
: m_transaction(a.m_transaction),
52-
m_offset(a.m_offset),
53-
m_name(a.m_name),
54-
m_value(a.m_value),
55-
m_var(a.m_var) { }
56-
*/
57-
58-
~AnchoredVariable();
50+
~AnchoredVariable() = default;
5951

6052
void unset();
6153
void set(const std::string &a, size_t offset);
6254
void set(const std::string &a, size_t offset, size_t offsetLen);
63-
void append(const std::string &a, size_t offset,
64-
bool spaceSeparator = false);
65-
void append(const std::string &a, size_t offset,
66-
bool spaceSeparator, size_t size);
6755

6856
void evaluate(std::vector<const VariableValue *> *l);
6957
std::string * evaluate();
@@ -75,7 +63,7 @@ class AnchoredVariable {
7563
std::string m_value;
7664

7765
private:
78-
VariableValue *m_var;
66+
VariableValue m_var;
7967
};
8068

8169
} // namespace modsecurity

src/anchored_variable.cc

Lines changed: 7 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -31,19 +31,9 @@ AnchoredVariable::AnchoredVariable(Transaction *t,
3131
const std::string &name)
3232
: m_transaction(t),
3333
m_offset(0),
34-
m_name(""),
34+
m_name(name),
3535
m_value(""),
36-
m_var(NULL) {
37-
m_name.append(name);
38-
m_var = new VariableValue(&m_name);
39-
}
40-
41-
42-
AnchoredVariable::~AnchoredVariable() {
43-
if (m_var) {
44-
delete (m_var);
45-
m_var = NULL;
46-
}
36+
m_var(&name) {
4737
}
4838

4939

@@ -56,38 +46,14 @@ void AnchoredVariable::set(const std::string &a, size_t offset,
5646
size_t offsetLen) {
5747
m_offset = offset;
5848
m_value.assign(a.c_str(), a.size());
59-
m_var->addOrigin(offsetLen, offset);
49+
m_var.addOrigin(offsetLen, offset);
6050
}
6151

6252

6353
void AnchoredVariable::set(const std::string &a, size_t offset) {
6454
m_offset = offset;
6555
m_value.assign(a.c_str(), a.size());
66-
m_var->addOrigin(m_value.size(), offset);
67-
}
68-
69-
70-
void AnchoredVariable::append(const std::string &a, size_t offset,
71-
bool spaceSeparator) {
72-
if (spaceSeparator && !m_value.empty()) {
73-
m_value.append(" " + a);
74-
} else {
75-
m_value.append(a);
76-
}
77-
m_offset = offset;
78-
m_var->addOrigin(a.size(), offset);
79-
}
80-
81-
82-
void AnchoredVariable::append(const std::string &a, size_t offset,
83-
bool spaceSeparator, size_t size) {
84-
if (spaceSeparator && !m_value.empty()) {
85-
m_value.append(" " + a);
86-
} else {
87-
m_value.append(a);
88-
}
89-
m_offset = offset;
90-
m_var->addOrigin({size, offset});
56+
m_var.addOrigin(m_value.size(), offset);
9157
}
9258

9359

@@ -96,9 +62,8 @@ void AnchoredVariable::evaluate(std::vector<const VariableValue *> *l) {
9662
return;
9763
}
9864

99-
m_var->setValue(m_value);
100-
VariableValue *m_var2 = new VariableValue(m_var);
101-
l->push_back(m_var2);
65+
m_var.setValue(m_value);
66+
l->push_back(new VariableValue(&m_var));
10267
}
10368

10469

@@ -111,9 +76,7 @@ std::unique_ptr<std::string> AnchoredVariable::resolveFirst() {
11176
if (m_value.empty()) {
11277
return nullptr;
11378
}
114-
std::unique_ptr<std::string> a(new std::string());
115-
a->append(m_value);
116-
return a;
79+
return std::make_unique<std::string>(m_value);
11780
}
11881

11982

0 commit comments

Comments
 (0)