diff options
author | Jan Vesely <[email protected]> | 2014-12-05 19:05:30 -0500 |
---|---|---|
committer | Francisco Jerez <[email protected]> | 2014-12-10 15:48:20 +0200 |
commit | 3a18fc60581ad27811b0b4b22fce51da0ae8a008 (patch) | |
tree | 5a1b3db2670cede7284d36f0e0a7c5b6291f6956 /src/gallium/state_trackers/clover | |
parent | 7f21cf71989ba780639594ebb34d6e7345b08436 (diff) |
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 <[email protected]>
Reviewed-by: Francisco Jerez <[email protected]>
Diffstat (limited to 'src/gallium/state_trackers/clover')
-rw-r--r-- | src/gallium/state_trackers/clover/core/kernel.cpp | 44 |
1 files 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 e07d14d39f7..442762c4773 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) { |