-static bool did_initialize_ltdl = false;
-
-static inline void check_ltdl_initialization() {
- if (!did_initialize_ltdl) {
- if (0 != lt_dlinit())
- throw std::string(lt_dlerror());
- did_initialize_ltdl = true;
- }
-}
-
-static std::vector<lt_dlhandle> OpenedHandles;
-
-DynamicLibrary::DynamicLibrary() : handle(0) {
- check_ltdl_initialization();
-
- lt_dlhandle a_handle = lt_dlopen(0);
-
- if (a_handle == 0)
- throw std::string("Can't open program as dynamic library");
-
- handle = a_handle;
- OpenedHandles.push_back(a_handle);
-}
-
-DynamicLibrary::DynamicLibrary(const char*filename) : handle(0) {
- check_ltdl_initialization();
-
- lt_dlhandle a_handle = lt_dlopen(filename);