diff options
author | Eric Engestrom <eric@engestrom.ch> | 2017-06-15 23:53:54 +0100 |
---|---|---|
committer | Andres Gomez <agomez@igalia.com> | 2017-06-28 20:17:13 +0300 |
commit | f9c7c9f48acd85ce759262fd40d9b11277bbc2b2 (patch) | |
tree | 41d5d319f366ac0705c62392cb29aef5ce40436e | |
parent | 3700dc5f9719313aabbace50eb7c2f4009906fe5 (diff) |
egl/display: only detect the platform once
My refactor missed the fact that `native_platform` is static.
Add the proper guard around the detection code, as it might not be
necessary, and only print the debug message when a detection was
actually performed.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=101252
Fixes: 7adb9b094894a512c019 ("egl/display: remove unnecessary code and
make it easier to read")
Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Grazvydas Ignotas <notasas@gmail.com>
Acked-by: Emil Velikov <emil.l.velikov@gmail.com>
(cherry picked from commit 4ca9ae587c083b6f03feb65b4ce84929109d5d59)
-rw-r--r-- | src/egl/main/egldisplay.c | 31 |
1 files changed, 17 insertions, 14 deletions
diff --git a/src/egl/main/egldisplay.c b/src/egl/main/egldisplay.c index 1d724b4a740..a6d41db2aea 100644 --- a/src/egl/main/egldisplay.c +++ b/src/egl/main/egldisplay.c @@ -180,24 +180,27 @@ _eglNativePlatformDetectNativeDisplay(void *nativeDisplay) _EGLPlatformType _eglGetNativePlatform(void *nativeDisplay) { - static _EGLPlatformType native_platform; - char *detection_method; - - native_platform = _eglGetNativePlatformFromEnv(); - detection_method = "environment overwrite"; + static _EGLPlatformType native_platform = _EGL_INVALID_PLATFORM; if (native_platform == _EGL_INVALID_PLATFORM) { - native_platform = _eglNativePlatformDetectNativeDisplay(nativeDisplay); - detection_method = "autodetected"; - } + const char *detection_method; - if (native_platform == _EGL_INVALID_PLATFORM) { - native_platform = _EGL_NATIVE_PLATFORM; - detection_method = "build-time configuration"; - } + native_platform = _eglGetNativePlatformFromEnv(); + detection_method = "environment overwrite"; - _eglLog(_EGL_DEBUG, "Native platform type: %s (%s)", - egl_platforms[native_platform].name, detection_method); + if (native_platform == _EGL_INVALID_PLATFORM) { + native_platform = _eglNativePlatformDetectNativeDisplay(nativeDisplay); + detection_method = "autodetected"; + } + + if (native_platform == _EGL_INVALID_PLATFORM) { + native_platform = _EGL_NATIVE_PLATFORM; + detection_method = "build-time configuration"; + } + + _eglLog(_EGL_DEBUG, "Native platform type: %s (%s)", + egl_platforms[native_platform].name, detection_method); + } return native_platform; } |