From c10585ff2be9a931f853ab722ed207639214de7c Mon Sep 17 00:00:00 2001 From: Seonghyun Oh Date: Sat, 1 Aug 2026 20:05:51 +0900 Subject: [PATCH] Defer AnchoredSetVariable bucket allocation --- src/anchored_set_variable.cc | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/anchored_set_variable.cc b/src/anchored_set_variable.cc index 4c81dab412..a0ae7d08b6 100644 --- a/src/anchored_set_variable.cc +++ b/src/anchored_set_variable.cc @@ -31,9 +31,7 @@ namespace modsecurity { AnchoredSetVariable::AnchoredSetVariable(Transaction *t, const std::string &name) : m_transaction(t), - m_name(name) { - reserve(10); - } + m_name(name) { } AnchoredSetVariable::~AnchoredSetVariable() { @@ -52,6 +50,9 @@ void AnchoredSetVariable::unset() { void AnchoredSetVariable::set(const std::string &key, const std::string &value, size_t offset, size_t len) { + if (empty()) { + reserve(10); + } VariableValue *var = new VariableValue(&m_name, &key, &value); var->addOrigin(len, offset); emplace(key, var); @@ -60,6 +61,9 @@ void AnchoredSetVariable::set(const std::string &key, void AnchoredSetVariable::set(const std::string &key, const std::string &value, size_t offset) { + if (empty()) { + reserve(10); + } VariableValue *var = new VariableValue(&m_name, &key, &value); var->addOrigin(value.size(), offset); emplace(key, var);