Skip to content

Commit dc4e47a

Browse files
committed
Fix externally registered add-ons being loaded again when in add-on search path
1 parent 28ccf33 commit dc4e47a

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

source/addon_manager.cpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -240,6 +240,15 @@ void reshade::load_addons()
240240

241241
log::message(log::level::warning, "Skipped loading add-on from '%s' because this build of ReShade has only limited add-on functionality.", path.u8string().c_str());
242242
#else
243+
// Avoid loading library again that has already been loaded externally
244+
if (const auto it = std::find_if(addon_loaded_info.cbegin(), addon_loaded_info.cend(),
245+
[&path](const addon_info &info) { return path.filename().u8string() == info.file; });
246+
it != addon_loaded_info.cend())
247+
{
248+
assert(it->external);
249+
continue;
250+
}
251+
243252
// Avoid loading library altogether when it is found in the disabled add-on list
244253
if (addon_info info;
245254
std::find_if(disabled_addons.cbegin(), disabled_addons.cend(),

0 commit comments

Comments
 (0)