Change getdladdr to always use dlopen, dlsym and then dlclose.

Performance is not really important and dlsym(0, ...) is
not defined while the more correct dlsym(RTLD_DEFAULT, ...)
is a GNUism (although POSIX does reserve RTLD_DEFAULT).


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29224 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
reimar 2009-04-23 10:18:32 +00:00
parent e3f02a93cc
commit d6cf125d94
1 changed files with 6 additions and 11 deletions

View File

@ -1536,22 +1536,17 @@ void swapGlBuffers(void) {
* \brief find address of a linked function
* \param s name of function to find
* \return address of function or NULL if not found
*
* Copied from xine
*/
static void *getdladdr(const char *s) {
void *ret = NULL;
#ifdef HAVE_LIBDL
#if defined(__sun) || defined(__sgi)
static void *handle = NULL;
void *handle = dlopen(NULL, RTLD_LAZY);
if (!handle)
handle = dlopen(NULL, RTLD_LAZY);
return dlsym(handle, s);
#else
return dlsym(0, s);
#endif
#else
return NULL;
ret = dlsym(handle, s);
dlclose(handle);
#endif
return ret;
}
/**