diff options
author | José Fonseca <jose.r.fonseca@gmail.com> | 2011-12-01 21:09:57 +0000 |
---|---|---|
committer | José Fonseca <jose.r.fonseca@gmail.com> | 2011-12-01 21:09:57 +0000 |
commit | 1cfd89b2bb73c94340d61936a72bec346c3ca22d (patch) | |
tree | 627a8fda0b00009fa8564b217e3ac56c24f2a29d /glxtrace.py | |
parent | 641493c219b52d39d68b1125b6ff5201ce861ffa (diff) |
Cleanup glproc.
Based on some of Alexandros Frantzis code/ideas.
Diffstat (limited to 'glxtrace.py')
-rw-r--r-- | glxtrace.py | 54 |
1 files changed, 1 insertions, 53 deletions
diff --git a/glxtrace.py b/glxtrace.py index be577cb..c9e9518 100644 --- a/glxtrace.py +++ b/glxtrace.py @@ -95,12 +95,6 @@ if __name__ == '__main__': /* - * Handle to the true libGL.so - */ -static void *libgl_handle = NULL; - - -/* * Invoke the true dlopen() function. */ static void *__dlopen(const char *filename, int flag) @@ -145,7 +139,7 @@ void * dlopen(const char *filename, int flag) strcmp(filename, "libGL.so.1") == 0) { // Use the true libGL.so handle instead of RTLD_NEXT from now on - libgl_handle = handle; + __libGlHandle = handle; // Get the file path for our shared object, and use it instead static int dummy = 0xdeedbeef; @@ -163,51 +157,5 @@ void * dlopen(const char *filename, int flag) } -/* - * Lookup a libGL symbol - */ -void * __libgl_sym(const char *symbol) -{ - void *result; - - if (!libgl_handle) { - /* - * The app doesn't directly link against libGL.so, nor does it directly - * dlopen it. So we have to load it ourselves. - */ - - const char * libgl_filename = getenv("TRACE_LIBGL"); - - if (!libgl_filename) { - /* - * Try to use whatever libGL.so the library is linked against. - */ - - result = dlsym(RTLD_NEXT, symbol); - if (result) { - libgl_handle = RTLD_NEXT; - return result; - } - - libgl_filename = "libGL.so.1"; - } - - /* - * It would have been preferable to use RTLD_LOCAL to ensure that the - * application can never access libGL.so symbols directly, but this - * won't work, given libGL.so often loads a driver specific SO and - * exposes symbols to it. - */ - - libgl_handle = __dlopen(libgl_filename, RTLD_GLOBAL | RTLD_LAZY); - if (!libgl_handle) { - os::log("apitrace: error: couldn't find libGL.so\n"); - return NULL; - } - } - - return dlsym(libgl_handle, symbol); -} - ''' |