summaryrefslogtreecommitdiffstats
path: root/libvo/gl_common.c
diff options
context:
space:
mode:
Diffstat (limited to 'libvo/gl_common.c')
-rw-r--r--libvo/gl_common.c17
1 files changed, 6 insertions, 11 deletions
diff --git a/libvo/gl_common.c b/libvo/gl_common.c
index 596f99c0b9..b89c7fac07 100644
--- a/libvo/gl_common.c
+++ b/libvo/gl_common.c
@@ -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;
+ return NULL;
+ ret = dlsym(handle, s);
+ dlclose(handle);
#endif
+ return ret;
}
/**