Skip to content

Commit 5ebeb52

Browse files
committed
Fix pinned add-ons getting removed from add-on list while still being loaded
1 parent 7e06717 commit 5ebeb52

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

source/addon_manager.cpp

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -301,9 +301,9 @@ void reshade::load_addons()
301301
continue;
302302
}
303303

304-
if (addon_info *const info = find_addon(module))
304+
if (addon_info *const registered_info = find_addon(module))
305305
{
306-
info->external = false;
306+
registered_info->external = false;
307307
}
308308
else
309309
{
@@ -348,6 +348,14 @@ void reshade::unload_addons()
348348

349349
if (!FreeLibrary(module))
350350
log::message(log::level::warning, "Failed to unload '%s' with error code %lu!", info.file.c_str(), GetLastError());
351+
352+
if (addon_info *const registered_info = find_addon(module))
353+
{
354+
log::message(log::level::warning, "Add-on \"%s\" was not unregistered!", registered_info->name.c_str());
355+
356+
// Make add-on external at this point, so that it is not removed, since a consecutive load must be able to find it
357+
registered_info->external = true;
358+
}
351359
}
352360
#endif
353361

0 commit comments

Comments
 (0)