From 4abe34461ff4806ec6e7d5a55aa86b06adc5a1aa Mon Sep 17 00:00:00 2001 From: "Ryan C. Gordon" Date: Sat, 3 Apr 2021 10:10:58 -0400 Subject: [PATCH] SDL_EGL_ChooseConfig: cleanups and minor optimizations. - Move an immutable condition out of a for loop. - Add a break statement to that loop when we find what we're looking for. - Add an assert to make sure we don't overflow a buffer. - Wrap a single-statement if block in braces. - Adjust some whitespace. --- src/video/SDL_egl.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/src/video/SDL_egl.c b/src/video/SDL_egl.c index 079daef0f..3716da750 100644 --- a/src/video/SDL_egl.c +++ b/src/video/SDL_egl.c @@ -692,9 +692,9 @@ static void dumpconfig(_THIS, EGLConfig config) #endif /* DUMP_EGL_CONFIG */ int -SDL_EGL_ChooseConfig(_THIS) +SDL_EGL_ChooseConfig(_THIS) { -/* 64 seems nice. */ + /* 64 seems nice. */ EGLint attribs[64]; EGLint found_configs = 0, value; /* 128 seems even nicer here */ @@ -706,7 +706,7 @@ SDL_EGL_ChooseConfig(_THIS) /* The EGL library wasn't loaded, SDL_GetError() should have info */ return -1; } - + /* Get a valid EGL configuration */ i = 0; attribs[i++] = EGL_RED_SIZE; @@ -775,6 +775,8 @@ SDL_EGL_ChooseConfig(_THIS) attribs[i++] = EGL_NONE; + SDL_assert(i < SDL_arraysize(attribs)); + if (_this->egl_data->eglChooseConfig(_this->egl_data->egl_display, attribs, configs, SDL_arraysize(configs), @@ -784,15 +786,17 @@ SDL_EGL_ChooseConfig(_THIS) } /* first ensure that a found config has a matching format, or the function will fall through. */ - for (i = 0; i < found_configs; i++ ) { - if (_this->egl_data->egl_required_visual_id) - { + if (_this->egl_data->egl_required_visual_id) + { + for (i = 0; i < found_configs; i++ ) { EGLint format; _this->egl_data->eglGetConfigAttrib(_this->egl_data->egl_display, configs[i], EGL_NATIVE_VISUAL_ID, &format); - if (_this->egl_data->egl_required_visual_id == format) + if (_this->egl_data->egl_required_visual_id == format) { has_matching_format = SDL_TRUE; + break; + } } }