Mesa (master): dri: Simplify use of driConcatConfigs

Chad Versace chadversary at kemper.freedesktop.org
Tue Aug 7 16:31:18 UTC 2012


Module: Mesa
Branch: master
Commit: a4bf68ca50da0ce291a464aec9b03a469ab2561a
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=a4bf68ca50da0ce291a464aec9b03a469ab2561a

Author: Chad Versace <chad.versace at linux.intel.com>
Date:   Wed Aug  1 21:23:47 2012 -0700

dri: Simplify use of driConcatConfigs

If either argument to driConcatConfigs(a, b) is null or the empty list,
then simply return the other argument as the resultant list.

All callers were accomplishing that same behavior anyway. And each caller
accopmplished it with the same pattern. So this patch moves that external
pattern into the function.

Reviewed-by: <eric at anholt.net>
Signed-off-by: Chad Versace <chad.versace at linux.intel.com>

---

 src/gallium/state_trackers/dri/common/dri_screen.c |   12 ++++--------
 src/mesa/drivers/dri/common/utils.c                |    5 +++++
 src/mesa/drivers/dri/intel/intel_screen.c          |   10 ++--------
 src/mesa/drivers/dri/nouveau/nouveau_screen.c      |    3 +--
 src/mesa/drivers/dri/radeon/radeon_screen.c        |    5 +----
 5 files changed, 13 insertions(+), 22 deletions(-)

diff --git a/src/gallium/state_trackers/dri/common/dri_screen.c b/src/gallium/state_trackers/dri/common/dri_screen.c
index 406e550..e581a74 100644
--- a/src/gallium/state_trackers/dri/common/dri_screen.c
+++ b/src/gallium/state_trackers/dri/common/dri_screen.c
@@ -219,16 +219,12 @@ dri_fill_in_modes(struct dri_screen *screen,
 
    if (pixel_bits == 16) {
       configs = configs_r5g6b5;
-      if (configs_a8r8g8b8)
-         configs = configs ? driConcatConfigs(configs, configs_a8r8g8b8) : configs_a8r8g8b8;
-      if (configs_x8r8g8b8)
-	 configs = configs ? driConcatConfigs(configs, configs_x8r8g8b8) : configs_x8r8g8b8;
+      configs = driConcatConfigs(configs, configs_a8r8g8b8);
+      configs = driConcatConfigs(configs, configs_x8r8g8b8);
    } else {
       configs = configs_a8r8g8b8;
-      if (configs_x8r8g8b8)
-	 configs = configs ? driConcatConfigs(configs, configs_x8r8g8b8) : configs_x8r8g8b8;
-      if (configs_r5g6b5)
-         configs = configs ? driConcatConfigs(configs, configs_r5g6b5) : configs_r5g6b5;
+      configs = driConcatConfigs(configs, configs_x8r8g8b8);
+      configs = driConcatConfigs(configs, configs_r5g6b5);
    }
 
    if (configs == NULL) {
diff --git a/src/mesa/drivers/dri/common/utils.c b/src/mesa/drivers/dri/common/utils.c
index 328f56b..6d8cb4e 100644
--- a/src/mesa/drivers/dri/common/utils.c
+++ b/src/mesa/drivers/dri/common/utils.c
@@ -409,6 +409,11 @@ __DRIconfig **driConcatConfigs(__DRIconfig **a,
     __DRIconfig **all;
     int i, j, index;
 
+    if (a == NULL || a[0] == NULL)
+       return b;
+    else if (b == NULL || b[0] == NULL)
+       return a;
+
     i = 0;
     while (a[i] != NULL)
 	i++;
diff --git a/src/mesa/drivers/dri/intel/intel_screen.c b/src/mesa/drivers/dri/intel/intel_screen.c
index 491f12a..dea7b66 100644
--- a/src/mesa/drivers/dri/intel/intel_screen.c
+++ b/src/mesa/drivers/dri/intel/intel_screen.c
@@ -878,10 +878,7 @@ intel_screen_make_configs(__DRIscreen *dri_screen)
                                      msaa_samples_array,
                                      ARRAY_SIZE(msaa_samples_array),
                                      false);
-      if (configs == NULL)
-         configs = new_configs;
-      else
-         configs = driConcatConfigs(configs, new_configs);
+      configs = driConcatConfigs(configs, new_configs);
    }
 
    /* Generate the minimum possible set of configs that include an
@@ -903,10 +900,7 @@ intel_screen_make_configs(__DRIscreen *dri_screen)
                                      back_buffer_modes + 1, 1,
                                      msaa_samples_array, 1,
                                      true);
-      if (configs == NULL)
-         configs = new_configs;
-      else
-         configs = driConcatConfigs(configs, new_configs);
+      configs = driConcatConfigs(configs, new_configs);
    }
 
    if (configs == NULL) {
diff --git a/src/mesa/drivers/dri/nouveau/nouveau_screen.c b/src/mesa/drivers/dri/nouveau/nouveau_screen.c
index 2a15c08..3f65c36 100644
--- a/src/mesa/drivers/dri/nouveau/nouveau_screen.c
+++ b/src/mesa/drivers/dri/nouveau/nouveau_screen.c
@@ -79,8 +79,7 @@ nouveau_get_configs(void)
 					  GL_TRUE);
 		assert(config);
 
-		configs = configs ? driConcatConfigs(configs, config)
-			: config;
+		configs = driConcatConfigs(configs, config);
 	}
 
 	return (const __DRIconfig **)configs;
diff --git a/src/mesa/drivers/dri/radeon/radeon_screen.c b/src/mesa/drivers/dri/radeon/radeon_screen.c
index 85cfe17..27b57c5 100644
--- a/src/mesa/drivers/dri/radeon/radeon_screen.c
+++ b/src/mesa/drivers/dri/radeon/radeon_screen.c
@@ -760,10 +760,7 @@ __DRIconfig **radeonInitScreen2(__DRIscreen *psp)
 				     msaa_samples_array,
 				     ARRAY_SIZE(msaa_samples_array),
 				     GL_TRUE);
-      if (configs == NULL)
-	 configs = new_configs;
-      else
-	 configs = driConcatConfigs(configs, new_configs);
+      configs = driConcatConfigs(configs, new_configs);
    }
 
    if (configs == NULL) {




More information about the mesa-commit mailing list