From af1f517ab9fae0a8dee7c17b2fc1beccc30a1c3c Mon Sep 17 00:00:00 2001 From: James Jones Date: Fri, 13 Dec 2019 16:20:02 -0800 Subject: [PATCH] gbm: Consolidate env var and default backend loops MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: James Jones Reviewed-by: Michel Dänzer Reviewed-by: Emil Velikov Part-of: --- src/gbm/main/backend.c | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/src/gbm/main/backend.c b/src/gbm/main/backend.c index 50c874a..6e563dc 100644 --- a/src/gbm/main/backend.c +++ b/src/gbm/main/backend.c @@ -52,11 +52,11 @@ find_backend(const char *name, int fd) struct gbm_device *dev = NULL; unsigned i; - for (i = 0; i < ARRAY_SIZE(backends); ++i) { - if (strcmp(backends[i].name, name) == 0) { - dev = backends[i].backend->create_device(fd); - break; - } + for (i = 0; i < ARRAY_SIZE(backends) && dev == NULL; ++i) { + if (name && strcmp(backends[i].name, name)) + continue; + + dev = backends[i].backend->create_device(fd); } return dev; @@ -65,20 +65,15 @@ find_backend(const char *name, int fd) struct gbm_device * _gbm_create_device(int fd) { - const struct backend_desc *backend = NULL; struct gbm_device *dev = NULL; - unsigned i; const char *b; b = getenv("GBM_BACKEND"); if (b) dev = find_backend(b, fd); - for (i = 0; i < ARRAY_SIZE(backends) && dev == NULL; ++i) { - backend = &backends[i]; + if (!dev) + dev = find_backend(NULL, fd); - dev = backend->backend->create_device(fd); - } - return dev; } -- 2.7.4