$NetBSD: patch-el,v 1.1 2001/10/15 22:46:11 skrll Exp $ --- kwin/plugins.cpp.orig Thu Jun 7 12:35:06 2001 +++ kwin/plugins.cpp @@ -19,10 +19,6 @@ #include "plugins.h" -#if 0 -#define lt_ptr lt_ptr_t -#endif - using namespace KWinInternal; const char* defaultPlugin = "libkwindefault"; @@ -42,10 +38,10 @@ { if(handle) { // Call the plugin's cleanup function - lt_ptr_t deinit_func = lt_dlsym(handle, "deinit"); + void* deinit_func = handle->symbol(QString("deinit").utf8()); if (deinit_func) ((void (*)())deinit_func)(); - lt_dlclose(handle); + loader->unloadLibrary(QFile::encodeName(pluginStr)); } } @@ -74,12 +70,13 @@ void PluginMgr::loadPlugin(QString nameStr) { static bool dlregistered = false; - lt_dlhandle oldHandle = handle; + KLibrary* oldHandle = handle; + QString oldPlugin = pluginStr; handle = 0; if(!dlregistered) { dlregistered = true; - lt_dlinit(); + loader = KLibLoader::self(); } QString path = KLibLoader::findLibrary(nameStr.latin1()); @@ -99,14 +96,14 @@ return; // Try loading the requested plugin - handle = lt_dlopen(path.latin1()); + handle = loader->library(path.latin1()); // If that fails, fall back to the default plugin if (!handle) { nameStr = defaultPlugin; path = KLibLoader::findLibrary(nameStr.latin1()); if (!path.isEmpty()) - handle = lt_dlopen(path.latin1()); + handle = loader->library(path.latin1()); } if (!handle) @@ -114,16 +111,16 @@ "and could not be loaded!")); // Call the plugin's initialisation function - lt_ptr_t init_func = lt_dlsym(handle, "init"); + void* init_func = handle->symbol(QString("init").utf8()); if (init_func) ((void (*)())init_func)(); - lt_ptr_t alloc_func = lt_dlsym(handle, "allocate"); + void* alloc_func = handle->symbol(QString("allocate").utf8()); if(alloc_func) { alloc_ptr = (Client* (*)(Workspace *ws, WId w, int tool))alloc_func; } else { qWarning("KWin: The library %s is not a KWin plugin.", path.latin1()); - lt_dlclose(handle); + loader->unloadLibrary(QFile::encodeName(pluginStr)); exit(1); } @@ -132,16 +129,16 @@ // Call the old plugin's cleanup function if(oldHandle) { - lt_ptr_t deinit_func = lt_dlsym(oldHandle, "deinit"); + void* deinit_func = oldHandle->symbol(QString("deinit").utf8()); if (deinit_func) ((void (*)())deinit_func)(); - lt_dlclose(oldHandle); + loader->unloadLibrary(QFile::encodeName(oldPlugin)); } } void PluginMgr::resetPlugin() { - lt_ptr_t reset_func = lt_dlsym(handle, "reset"); + void* reset_func = handle->symbol(QString("reset").utf8()); if (reset_func) ((void (*)())reset_func)(); }