]> source.dussan.org Git - rspamd.git/commitdiff
Revert "[Minor] Simplify code"
authorVsevolod Stakhov <vsevolod@rspamd.com>
Fri, 24 Jun 2022 21:06:44 +0000 (22:06 +0100)
committerVsevolod Stakhov <vsevolod@rspamd.com>
Fri, 24 Jun 2022 21:06:44 +0000 (22:06 +0100)
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

index 8958531329c5bab59c9ce14ea0836d927ff73f9f..9e26eb42f84e31101534906aac27367ed590c540 100644 (file)
@@ -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