From 1ed9973f390005db5347c388cb11dbbf8a72e118 Mon Sep 17 00:00:00 2001 From: Oliver Hamlet Date: Fri, 16 May 2025 08:00:42 +0100 Subject: [PATCH] Avoid unnecessary conversions in PluginMetadata::NameMatches() --- cpp/src/api/metadata/plugin_metadata.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/cpp/src/api/metadata/plugin_metadata.cpp b/cpp/src/api/metadata/plugin_metadata.cpp index 38dc6669..9604e951 100644 --- a/cpp/src/api/metadata/plugin_metadata.cpp +++ b/cpp/src/api/metadata/plugin_metadata.cpp @@ -29,6 +29,7 @@ #include #include "api/convert.h" +#include "api/exception/exception.h" #include "libloot-cpp/src/lib.rs.h" namespace { @@ -189,8 +190,13 @@ bool PluginMetadata::IsRegexPlugin() const { } bool PluginMetadata::NameMatches(std::string_view pluginName) const { - const auto metadata = convert(*this); - return metadata->name_matches(convert(pluginName)); + try { + const auto metadata = loot::rust::new_plugin_metadata(name_); + + return metadata->name_matches(convert(pluginName)); + } catch (const ::rust::Error& e) { + std::rethrow_exception(mapError(e)); + } } std::string PluginMetadata::AsYaml() const {