From 67340e1526d9a34fa956b85f85cfd26934398533 Mon Sep 17 00:00:00 2001 From: WerWolv Date: Sun, 16 Feb 2025 15:14:23 +0100 Subject: [PATCH] impr: Make sure to only ever load plugins once --- lib/libimhex/source/api/plugin_manager.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/libimhex/source/api/plugin_manager.cpp b/lib/libimhex/source/api/plugin_manager.cpp index d4f0e263c..714e08596 100644 --- a/lib/libimhex/source/api/plugin_manager.cpp +++ b/lib/libimhex/source/api/plugin_manager.cpp @@ -30,7 +30,11 @@ namespace hex { return handle; #else - auto handle = uintptr_t(dlopen(wolv::util::toUTF8String(path).c_str(), RTLD_LAZY)); + const auto pathString = wolv::util::toUTF8String(path); + + auto handle = uintptr_t(dlopen(pathString.c_str(), RTLD_NOLOAD)); + if (handle == 0) + handle = uintptr_t(dlopen(pathString.c_str(), RTLD_NOW | RTLD_GLOBAL)); if (handle == 0) { log::error("Loading library '{}' failed: {}!", wolv::util::toUTF8String(path.filename()), dlerror());