commit 8242b83: Revert "[Minor] Simplify code"
Vsevolod Stakhov
vsevolod at rspamd.com
Fri Jun 24 21:14:03 UTC 2022
Author: Vsevolod Stakhov
Date: 2022-06-24 22:06:44 +0100
URL: https://github.com/rspamd/rspamd/commit/8242b83858ffd36337e01b43808ee4f2eade1b9e (HEAD -> master)
Revert "[Minor] Simplify code"
It seems that safety guarantees as defined by standard apply merely to the values but not to the keys.
So revert to a more ugly approach unless there is a better way to do `try_emplace` with move only key.
This reverts commit 8bb63981133b479dcaf24b9d34d43993c1b732c8.
---
src/libserver/css/css.cxx | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/src/libserver/css/css.cxx b/src/libserver/css/css.cxx
index 895853132..9e26eb42f 100644
--- a/src/libserver/css/css.cxx
+++ b/src/libserver/css/css.cxx
@@ -78,10 +78,13 @@ css_style_sheet::add_selector_rule(std::unique_ptr<css_selector> &&selector,
}
if (target_hash) {
+ auto found_it = target_hash->find(selector);
- auto [found_it, found] = target_hash->try_emplace(std::move(selector), decls);
-
- if (found) {
+ if (found_it == target_hash->end()) {
+ /* Easy case, new element */
+ target_hash->insert({std::move(selector), decls});
+ }
+ else {
/* The problem with merging is actually in how to handle selectors chains
* For example, we have 2 selectors:
* 1. class id tag -> meaning that we first match class, then we ensure that
More information about the Commits
mailing list