From 4ced5efcd80083badec26205379b922650c8bce4 Mon Sep 17 00:00:00 2001 From: Antony Polukhin Date: Thu, 6 Feb 2025 10:56:10 +0300 Subject: [PATCH 1/3] NOT FOR MERGE --- include/boost/dll/import.hpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/include/boost/dll/import.hpp b/include/boost/dll/import.hpp index 9c7ce06f..950e5f55 100644 --- a/include/boost/dll/import.hpp +++ b/include/boost/dll/import.hpp @@ -13,7 +13,7 @@ #include // std::addressof #include - +#include #ifdef BOOST_HAS_PRAGMA_ONCE # pragma once #endif @@ -109,9 +109,11 @@ BOOST_DLL_IMPORT_RESULT_TYPE import_symbol(const boost::dll::fs::path& lib, cons load_mode::type mode = load_mode::default_mode) { using type = boost::dll::detail::import_type; - +std::cerr << "import_symbol 1\n"; auto p = boost::dll::detail::make_shared(lib, mode); +std::cerr << "import_symbol 2\n"; auto* addr = std::addressof(p->get(name)); +std::cerr << "import_symbol 3\n"; return type(std::move(p), addr); } From 8d3ba2cdda35175f347666b1e97fe198a8a7fe0e Mon Sep 17 00:00:00 2001 From: Antony Polukhin Date: Thu, 6 Feb 2025 11:32:21 +0300 Subject: [PATCH 2/3] Update import.hpp --- include/boost/dll/import.hpp | 1 + 1 file changed, 1 insertion(+) diff --git a/include/boost/dll/import.hpp b/include/boost/dll/import.hpp index 950e5f55..5d045ae5 100644 --- a/include/boost/dll/import.hpp +++ b/include/boost/dll/import.hpp @@ -14,6 +14,7 @@ #include // std::addressof #include #include + #ifdef BOOST_HAS_PRAGMA_ONCE # pragma once #endif From bdc689466ad28d6fbf2e8a258266e53cb98edc92 Mon Sep 17 00:00:00 2001 From: Antony Polukhin Date: Thu, 6 Feb 2025 16:01:49 +0300 Subject: [PATCH 3/3] Update import.hpp --- include/boost/dll/import.hpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/include/boost/dll/import.hpp b/include/boost/dll/import.hpp index 5d045ae5..e6110a10 100644 --- a/include/boost/dll/import.hpp +++ b/include/boost/dll/import.hpp @@ -106,12 +106,14 @@ namespace detail { * Overload that accepts path also throws std::bad_alloc in case of insufficient memory. */ template -BOOST_DLL_IMPORT_RESULT_TYPE import_symbol(const boost::dll::fs::path& lib, const char* name, +BOOST_DLL_IMPORT_RESULT_TYPE import_symbol(const boost::dll::fs::path& path, const char* name, load_mode::type mode = load_mode::default_mode) { using type = boost::dll::detail::import_type; std::cerr << "import_symbol 1\n"; - auto p = boost::dll::detail::make_shared(lib, mode); + boost::dll::shared_library lib(path, mode); +std::cerr << "import_symbol 1.5\n"; + auto p = boost::dll::detail::make_shared(std::move(lib)); std::cerr << "import_symbol 2\n"; auto* addr = std::addressof(p->get(name)); std::cerr << "import_symbol 3\n";