mirror of
https://github.com/owasp-modsecurity/ModSecurity.git
synced 2025-08-14 05:45:59 +03:00
Removes copy form VariableValue
On `Use std::shared_ptr for variable resolution` @WGH changes VariableValue to be a shared_ptr. As shared pointer, the copy on AnchoredVariable is no longer necessary. The copy was removed along with the copy constructor.
This commit is contained in:
parent
1eedf3e898
commit
155bb1a51f
@ -79,7 +79,7 @@ class AnchoredVariable {
|
||||
std::string m_value;
|
||||
|
||||
private:
|
||||
VariableValue m_var;
|
||||
std::shared_ptr<VariableValue> m_var;
|
||||
};
|
||||
|
||||
} // namespace modsecurity
|
||||
|
@ -60,20 +60,7 @@ class VariableValue {
|
||||
m_value(*value)
|
||||
{ }
|
||||
|
||||
VariableValue(const VariableValue &o) :
|
||||
m_collection(o.m_collection),
|
||||
m_key(o.m_key),
|
||||
m_keyWithCollection(o.m_keyWithCollection),
|
||||
m_value(o.m_value)
|
||||
{
|
||||
for (auto &i : o.m_orign) {
|
||||
VariableOrigin *origin(new VariableOrigin());
|
||||
origin->m_offset = i.m_offset;
|
||||
origin->m_length = i.m_length;
|
||||
m_orign.push_back(*origin);
|
||||
}
|
||||
}
|
||||
|
||||
VariableValue(const VariableValue &o) = delete;
|
||||
|
||||
const std::string& getName() const noexcept {
|
||||
return m_keyWithCollection;
|
||||
|
@ -34,7 +34,7 @@ AnchoredVariable::AnchoredVariable(Transaction *t,
|
||||
m_offset(0),
|
||||
m_name(name),
|
||||
m_value(""),
|
||||
m_var(&name) {
|
||||
m_var(std::make_shared<VariableValue>(&name)) {
|
||||
}
|
||||
|
||||
void AnchoredVariable::unset() {
|
||||
@ -50,7 +50,7 @@ void AnchoredVariable::set(const std::string &a, size_t offset,
|
||||
VariableOrigin origin;
|
||||
origin.m_offset = offset;
|
||||
origin.m_length = offsetLen;
|
||||
m_var.addOrigin(std::move(origin));
|
||||
m_var->addOrigin(std::move(origin));
|
||||
}
|
||||
|
||||
|
||||
@ -60,7 +60,7 @@ void AnchoredVariable::set(const std::string &a, size_t offset) {
|
||||
VariableOrigin origin;
|
||||
origin.m_offset = offset;
|
||||
origin.m_length = m_value.size();
|
||||
m_var.addOrigin(std::move(origin));
|
||||
m_var->addOrigin(std::move(origin));
|
||||
}
|
||||
|
||||
|
||||
@ -71,7 +71,7 @@ void AnchoredVariable::set(const char *a, size_t offset) {
|
||||
m_value.assign(a, strlen(a));
|
||||
origin.m_offset = offset;
|
||||
origin.m_length = m_value.size();
|
||||
m_var.addOrigin(std::move(origin));
|
||||
m_var->addOrigin(std::move(origin));
|
||||
}
|
||||
|
||||
|
||||
@ -83,7 +83,7 @@ void AnchoredVariable::set(const bpstd::string_view &a, size_t offset) {
|
||||
origin.m_offset = offset;
|
||||
origin.m_length = m_value.size();
|
||||
|
||||
m_var.addOrigin(std::move(origin));
|
||||
m_var->addOrigin(std::move(origin));
|
||||
}
|
||||
|
||||
|
||||
@ -98,7 +98,7 @@ void AnchoredVariable::append(const std::string &a, size_t offset,
|
||||
VariableOrigin origin;
|
||||
origin.m_offset = offset;
|
||||
origin.m_length = a.size();
|
||||
m_var.addOrigin(std::move(origin));
|
||||
m_var->addOrigin(std::move(origin));
|
||||
}
|
||||
|
||||
|
||||
@ -113,7 +113,7 @@ void AnchoredVariable::append(const std::string &a, size_t offset,
|
||||
VariableOrigin origin;
|
||||
origin.m_offset = offset;
|
||||
origin.m_length = size;
|
||||
m_var.addOrigin(std::move(origin));
|
||||
m_var->addOrigin(std::move(origin));
|
||||
}
|
||||
|
||||
|
||||
@ -122,8 +122,8 @@ void AnchoredVariable::evaluate(VariableValues *l) {
|
||||
return;
|
||||
}
|
||||
|
||||
m_var.setValue(m_value);
|
||||
l->push_back(std::make_shared<VariableValue>(m_var));
|
||||
m_var->setValue(m_value);
|
||||
l->push_back(m_var);
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user