| 324 | // in dlfaker, but it seems like there was a good reason. |
| 325 | |
| 326 | void *_vgl_dlopen(const char *file, int mode) |
| 327 | { |
| 328 | if(!__dlopen) |
| 329 | { |
| 330 | faker::GlobalCriticalSection::SafeLock l(globalMutex); |
| 331 | if(!__dlopen) |
| 332 | { |
| 333 | dlerror(); // Clear error state |
| 334 | __dlopen = (_dlopenType)dlsym(RTLD_NEXT, "dlopen"); |
| 335 | char *err = dlerror(); |
| 336 | if(!__dlopen) |
| 337 | { |
| 338 | vglout.print("[VGL] ERROR: Could not load function \"dlopen\"\n"); |
| 339 | if(err) vglout.print("[VGL] %s\n", err); |
| 340 | faker::safeExit(1); |
| 341 | } |
| 342 | } |
| 343 | } |
| 344 | return __dlopen(file, mode); |
| 345 | } |
| 346 | |
| 347 | |
| 348 | int _vgl_getAutotestColor(Display *dpy, Drawable d, int right) |
no test coverage detected