@@ -133,45 +133,33 @@ bool RuleWithOperator::executeOperatorAt(Transaction *trans, const std::string &
133133
134134void RuleWithOperator::getVariablesExceptions (Transaction *t,
135135 variables::Variables *exclusion, variables::Variables *addition) {
136- for (const auto &a : t->m_rules ->m_exceptions .m_variable_update_target_by_tag ) { // cppcheck-suppress ctunullpointer
137- if (containsTag (*a.first .get (), t) == false ) {
138- continue ;
139- }
140- Variable *b = a.second .get ();
141- if (dynamic_cast <variables::VariableModificatorExclusion*>(b)) {
142- exclusion->push_back (
143- dynamic_cast <variables::VariableModificatorExclusion*>(
144- b)->m_base .get ());
145- } else {
146- addition->push_back (b);
136+ for (const auto &[tag, v] : t->m_rules ->m_exceptions .m_variable_update_target_by_tag ) { // cppcheck-suppress ctunullpointer
137+ if (containsTag (*tag.get (), t)) {
138+ if (Variable *b{v.get ()};dynamic_cast <variables::VariableModificatorExclusion*>(b)) {
139+ exclusion->push_back (dynamic_cast <variables::VariableModificatorExclusion*>(b)->m_base .get ());
140+ } else {
141+ addition->push_back (b);
142+ }
147143 }
148144 }
149145
150- for (const auto &a : t->m_rules ->m_exceptions .m_variable_update_target_by_msg ) {
151- if (containsMsg (*a.first .get (), t) == false ) {
152- continue ;
153- }
154- Variable *b = a.second .get ();
155- if (dynamic_cast <variables::VariableModificatorExclusion*>(b)) {
156- exclusion->push_back (
157- dynamic_cast <variables::VariableModificatorExclusion*>(
158- b)->m_base .get ());
159- } else {
160- addition->push_back (b);
146+ for (const auto &[msg, v] : t->m_rules ->m_exceptions .m_variable_update_target_by_msg ) {
147+ if (containsMsg (*msg.get (), t)) {
148+ if (Variable *b{v.get ()}; dynamic_cast <variables::VariableModificatorExclusion *>(b)) {
149+ exclusion->push_back (dynamic_cast <variables::VariableModificatorExclusion *>(b)->m_base .get ());
150+ } else {
151+ addition->push_back (b);
152+ }
161153 }
162154 }
163155
164- for (const auto &a : t->m_rules ->m_exceptions .m_variable_update_target_by_id ) {
165- if (m_ruleId != a.first ) {
166- continue ;
167- }
168- Variable *b = a.second .get ();
169- if (dynamic_cast <variables::VariableModificatorExclusion*>(b)) {
170- exclusion->push_back (
171- dynamic_cast <variables::VariableModificatorExclusion*>(
172- b)->m_base .get ());
173- } else {
174- addition->push_back (b);
156+ for (const auto &[id, v] : t->m_rules ->m_exceptions .m_variable_update_target_by_id ) {
157+ if (m_ruleId == id) {
158+ if (Variable *b{v.get ()};dynamic_cast <variables::VariableModificatorExclusion *>(b)) {
159+ exclusion->push_back (dynamic_cast <variables::VariableModificatorExclusion *>(b)->m_base .get ());
160+ } else {
161+ addition->push_back (b);
162+ }
175163 }
176164 }
177165}
0 commit comments