Index: vcl/unx/gtk/app/gtkinst.cxx =================================================================== RCS file: /cvs/gsl/vcl/unx/gtk/app/gtkinst.cxx,v retrieving revision 1.14 diff -u -r1.14 gtkinst.cxx --- vcl/unx/gtk/app/gtkinst.cxx 19 Jun 2006 19:44:33 -0000 1.14 +++ vcl/unx/gtk/app/gtkinst.cxx 27 Jun 2006 02:11:09 -0000 @@ -43,6 +43,7 @@ #include #include +#include #if OSL_DEBUG_LEVEL > 1 #include @@ -111,13 +112,27 @@ GtkHookedYieldMutex *pYieldMutex = GET_YIELD_MUTEX(); pYieldMutex->ThreadsLeave(); } - static bool hookLocks( oslModule pModule ) + static bool hookLocks( void ) { - typedef void (*GdkLockFn) (GCallback enter_fn, GCallback leave_fn); + typedef void (*GdkLockFn) ( GCallback enter_fn, GCallback leave_fn ); rtl::OUString aSymbolName( RTL_CONSTASCII_USTRINGPARAM( "gdk_threads_set_lock_functions") ); + /* XXX GDK library path should be set by configure. */ + OUStringBuffer aModName( 128 ); + aModName.appendAscii( SAL_DLLPREFIX"gdk-x11-2.0" ); + aModName.appendAscii( SAL_DLLEXTENSION ); + OUString aModule = aModName.makeStringAndClear(); + oslModule aMod = osl_loadModule( aModule.pData, SAL_LOADMODULE_DEFAULT ); + + if ( !aMod ) + { +#if OSL_DEBUG_LEVEL > 1 + fprintf( stderr, "Failed to load "SAL_DLLPREFIX"gdk-x11-2.0"SAL_DLLEXTENSION"\n" ); +#endif + return false; + } GdkLockFn gdk_threads_set_lock_functions = - (GdkLockFn) osl_getFunctionSymbol( pModule, aSymbolName.pData ); + (GdkLockFn) osl_getFunctionSymbol( aMod, aSymbolName.pData ); if ( !gdk_threads_set_lock_functions ) { #if OSL_DEBUG_LEVEL > 1 @@ -150,7 +165,7 @@ if ( !g_thread_supported() ) g_thread_init( NULL ); - if ( hookLocks( pModule ) ) + if ( hookLocks() ) pYieldMutex = new GtkHookedYieldMutex(); else pYieldMutex = new GtkYieldMutex();