Mesa (master): clover: Use switch when creating kernel arguments.

Francisco Jerez currojerez at kemper.freedesktop.org
Wed Dec 10 13:56:24 UTC 2014


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

Author: Jan Vesely <jan.vesely at rutgers.edu>
Date:   Fri Dec  5 19:05:30 2014 -0500

clover: Use switch when creating kernel arguments.

This way we get a warning if an enum value is not handled.

v2: codestyle

Signed-off-by: Jan Vesely <jan.vesely at rutgers.edu>
Reviewed-by: Francisco Jerez <currojerez at riseup.net>

---

 src/gallium/state_trackers/clover/core/kernel.cpp |   44 +++++++++------------
 1 file changed, 19 insertions(+), 25 deletions(-)

diff --git a/src/gallium/state_trackers/clover/core/kernel.cpp b/src/gallium/state_trackers/clover/core/kernel.cpp
index e07d14d..442762c 100644
--- a/src/gallium/state_trackers/clover/core/kernel.cpp
+++ b/src/gallium/state_trackers/clover/core/kernel.cpp
@@ -293,38 +293,32 @@ namespace {
 
 std::unique_ptr<kernel::argument>
 kernel::argument::create(const module::argument &marg) {
-      if (marg.type == module::argument::scalar)
-         return std::unique_ptr<kernel::argument>(
-            new scalar_argument(marg.size));
+   switch (marg.type) {
+   case module::argument::scalar:
+      return std::unique_ptr<kernel::argument>(new scalar_argument(marg.size));
 
-      else if (marg.type == module::argument::global)
-         return std::unique_ptr<kernel::argument>(
-            new global_argument);
+   case module::argument::global:
+      return std::unique_ptr<kernel::argument>(new global_argument);
 
-      else if (marg.type == module::argument::local)
-         return std::unique_ptr<kernel::argument>(
-            new local_argument);
+   case module::argument::local:
+      return std::unique_ptr<kernel::argument>(new local_argument);
 
-      else if (marg.type == module::argument::constant)
-         return std::unique_ptr<kernel::argument>(
-            new constant_argument);
+   case module::argument::constant:
+      return std::unique_ptr<kernel::argument>(new constant_argument);
 
-      else if (marg.type == module::argument::image2d_rd ||
-               marg.type == module::argument::image3d_rd)
-         return std::unique_ptr<kernel::argument>(
-            new image_rd_argument);
+   case module::argument::image2d_rd:
+   case module::argument::image3d_rd:
+      return std::unique_ptr<kernel::argument>(new image_rd_argument);
 
-      else if (marg.type == module::argument::image2d_wr ||
-               marg.type == module::argument::image3d_wr)
-         return std::unique_ptr<kernel::argument>(
-            new image_wr_argument);
+   case module::argument::image2d_wr:
+   case module::argument::image3d_wr:
+      return std::unique_ptr<kernel::argument>(new image_wr_argument);
 
-      else if (marg.type == module::argument::sampler)
-         return std::unique_ptr<kernel::argument>(
-            new sampler_argument);
+   case module::argument::sampler:
+      return std::unique_ptr<kernel::argument>(new sampler_argument);
 
-      else
-         throw error(CL_INVALID_KERNEL_DEFINITION);
+   }
+   throw error(CL_INVALID_KERNEL_DEFINITION);
 }
 
 kernel::argument::argument() : _set(false) {




More information about the mesa-commit mailing list