X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Fegl%2Fmain%2Fegldriver.c;fp=src%2Fegl%2Fmain%2Fegldriver.c;h=2105d83b3dadfdac5a4d5f196ba2a096824327da;hb=d24e3ea8cb2d953106d927a8d543ae2b495e911b;hp=7bc373d25d76fd5fc32bb0d809ce1bc847b90944;hpb=3d4deb659e138dbb4bbe3d351592c9eeadd7086a;p=mesa.git diff --git a/src/egl/main/egldriver.c b/src/egl/main/egldriver.c index 7bc373d25d7..2105d83b3da 100644 --- a/src/egl/main/egldriver.c +++ b/src/egl/main/egldriver.c @@ -46,34 +46,20 @@ #include "util/debug.h" -static mtx_t _eglModuleMutex = _MTX_INITIALIZER_NP; -static _EGLDriver *_eglDriver; +extern _EGLDriver _eglDriver; static _EGLDriver * _eglGetDriver(void) { - mtx_lock(&_eglModuleMutex); - - if (!_eglDriver) { - _eglDriver = calloc(1, sizeof(*_eglDriver)); - if (!_eglDriver) { - mtx_unlock(&_eglModuleMutex); - return NULL; - } - _eglInitDriver(_eglDriver); - } - - mtx_unlock(&_eglModuleMutex); - - return _eglDriver; + return &_eglDriver; } static _EGLDriver * _eglMatchAndInitialize(_EGLDisplay *disp) { if (_eglGetDriver()) - if (_eglDriver->Initialize(_eglDriver, disp)) - return _eglDriver; + if (_eglDriver.Initialize(&_eglDriver, disp)) + return &_eglDriver; return NULL; } @@ -112,19 +98,8 @@ _eglMatchDriver(_EGLDisplay *disp) __eglMustCastToProperFunctionPointerType _eglGetDriverProc(const char *procname) { - if (_eglGetDriver() && _eglDriver->GetProcAddress) - return _eglDriver->GetProcAddress(_eglDriver, procname); + if (_eglGetDriver() && _eglDriver.GetProcAddress) + return _eglDriver.GetProcAddress(&_eglDriver, procname); return NULL; } - -/** - * Unload all drivers. - */ -void -_eglUnloadDrivers(void) -{ - /* this is called at atexit time */ - free(_eglDriver); - _eglDriver = NULL; -}