From: Vsevolod Stakhov Date: Thu, 22 Jul 2021 12:21:29 +0000 (+0100) Subject: [Fix] Fix copy&paste error and rework X-Git-Tag: 3.0~116 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=9c0ff5a17da7fbe3007654fc97300dbe67cfe865;p=thirdparty%2Frspamd.git [Fix] Fix copy&paste error and rework --- diff --git a/src/libserver/composites/composites_internal.hxx b/src/libserver/composites/composites_internal.hxx index c38f3d3771..d6c8f3d694 100644 --- a/src/libserver/composites/composites_internal.hxx +++ b/src/libserver/composites/composites_internal.hxx @@ -102,6 +102,20 @@ private: } }; + auto new_composite(std::string_view composite_name, rspamd_expression *expr, + std::string_view composite_expression) -> auto + { + auto &composite = all_composites.emplace_back(std::make_shared()); + composite->expr = expr; + composite->id = all_composites.size() - 1; + composite->str_expr = composite_expression; + composite->sym = composite_name; + + composites[composite->sym] = composite; + + return composite; + } + robin_hood::unordered_flat_map, smart_str_hash, smart_str_equal> composites; /* Store all composites here, even if we have duplicates */ diff --git a/src/libserver/composites/composites_manager.cxx b/src/libserver/composites/composites_manager.cxx index cf91d1136f..cbd460be6f 100644 --- a/src/libserver/composites/composites_manager.cxx +++ b/src/libserver/composites/composites_manager.cxx @@ -85,11 +85,7 @@ composites_manager::add_composite(std::string_view composite_name, const ucl_obj return nullptr; } - auto &composite = all_composites.emplace_back(std::make_shared()); - composite->expr = expr; - composite->id = all_composites.size() - 1; - composite->str_expr = composite_expression; - composite->sym = composite_name; + const auto &composite = new_composite(composite_name, expr, composite_expression); double score; val = ucl_object_lookup(obj, "score"); @@ -141,8 +137,6 @@ composites_manager::add_composite(std::string_view composite_name, const ucl_obj } } - composites[std::string(composite_name)] = composite; - return composite.get(); } @@ -166,15 +160,7 @@ composites_manager::add_composite(std::string_view composite_name, return nullptr; } - auto &composite = all_composites.emplace_back(std::make_shared()); - composite->expr = expr; - composite->id = all_composites.size(); - composite->str_expr = composite_expression; - composite->sym = composite_name; - - composites[std::string(composite_name)] = composite; - - return composite.get(); + return new_composite(composite_name, expr, composite_expression).get(); } }