[arrayfire] 55/84: Fix colorspace c functions to use exceptions properly
Ghislain Vaillant
ghisvail-guest at moszumanska.debian.org
Mon Jan 4 23:22:24 UTC 2016
This is an automated email from the git hooks/post-receive script.
ghisvail-guest pushed a commit to branch master
in repository arrayfire.
commit 1e0ab509188b8bd90cd5e76923722e1a4f6a73bc
Author: Shehzan Mohammed <shehzan at arrayfire.com>
Date: Mon Dec 28 17:33:21 2015 -0500
Fix colorspace c functions to use exceptions properly
---
src/api/c/colorspace.cpp | 63 +++++++++++++++++++++++++++---------------------
1 file changed, 36 insertions(+), 27 deletions(-)
diff --git a/src/api/c/colorspace.cpp b/src/api/c/colorspace.cpp
index c73424f..eb5b722 100644
--- a/src/api/c/colorspace.cpp
+++ b/src/api/c/colorspace.cpp
@@ -13,23 +13,24 @@
#include <err_common.hpp>
template<af_cspace_t FROM, af_cspace_t TO>
-af_err convert(af_array *out, const af_array image)
+void color_space(af_array *out, const af_array image)
{
- return AF_ERR_NOT_SUPPORTED;
+ AF_ERROR("Color Space: Conversion from source type to output type not supported",
+ AF_ERR_NOT_SUPPORTED);
}
-#define INSTANTIATE_CSPACE_DEFS1(F, T, FUNC) \
-template<> \
-af_err convert<F, T>(af_array *out, const af_array image) \
-{ \
- return FUNC(out, image); \
+#define INSTANTIATE_CSPACE_DEFS1(F, T, FUNC) \
+template<> \
+void color_space<F, T>(af_array *out, const af_array image) \
+{ \
+ AF_CHECK(FUNC(out, image)); \
}
-#define INSTANTIATE_CSPACE_DEFS2(F, T, FUNC, ...) \
-template<> \
-af_err convert<F, T>(af_array *out, const af_array image) \
-{ \
- return FUNC(out, image, __VA_ARGS__); \
+#define INSTANTIATE_CSPACE_DEFS2(F, T, FUNC, ...) \
+template<> \
+void color_space<F, T>(af_array *out, const af_array image) \
+{ \
+ AF_CHECK(FUNC(out, image, __VA_ARGS__)); \
}
INSTANTIATE_CSPACE_DEFS1(AF_HSV , AF_RGB , af_hsv2rgb );
@@ -40,28 +41,36 @@ INSTANTIATE_CSPACE_DEFS2(AF_YCbCr, AF_RGB , af_ycbcr2rgb, AF_YCC_601);
INSTANTIATE_CSPACE_DEFS2(AF_RGB , AF_YCbCr, af_rgb2ycbcr, AF_YCC_601);
template<af_cspace_t FROM>
-static af_err convert(af_array *out, const af_array image, const af_cspace_t to)
+static void color_space(af_array *out, const af_array image, const af_cspace_t to)
{
switch(to) {
- case AF_GRAY : return convert<FROM, AF_GRAY >(out, image);
- case AF_RGB : return convert<FROM, AF_RGB >(out, image);
- case AF_HSV : return convert<FROM, AF_HSV >(out, image);
- case AF_YCbCr: return convert<FROM, AF_YCbCr>(out, image);
- default: return AF_ERR_ARG;
+ case AF_GRAY : color_space<FROM, AF_GRAY >(out, image); break;
+ case AF_RGB : color_space<FROM, AF_RGB >(out, image); break;
+ case AF_HSV : color_space<FROM, AF_HSV >(out, image); break;
+ case AF_YCbCr: color_space<FROM, AF_YCbCr>(out, image); break;
+ default: AF_ERROR("Incorrect enum value for output color type", AF_ERR_ARG);
}
}
af_err af_color_space(af_array *out, const af_array image, const af_cspace_t to, const af_cspace_t from)
{
- if (from==to) {
- return af_retain_array(out, image);
- }
+ try {
+ if (from == to) {
+ return af_retain_array(out, image);
+ }
+
+ ARG_ASSERT(2, (to == AF_GRAY || to == AF_RGB || to == AF_HSV || to == AF_YCbCr));
+ ARG_ASSERT(2, (from == AF_GRAY || from == AF_RGB || from == AF_HSV || from == AF_YCbCr));
- switch(from) {
- case AF_GRAY : return convert<AF_GRAY >(out, image, to);
- case AF_RGB : return convert<AF_RGB >(out, image, to);
- case AF_HSV : return convert<AF_HSV >(out, image, to);
- case AF_YCbCr: return convert<AF_YCbCr>(out, image, to);
- default: return AF_ERR_ARG;
+ switch(from) {
+ case AF_GRAY : color_space<AF_GRAY >(out, image, to); break;
+ case AF_RGB : color_space<AF_RGB >(out, image, to); break;
+ case AF_HSV : color_space<AF_HSV >(out, image, to); break;
+ case AF_YCbCr: color_space<AF_YCbCr>(out, image, to); break;
+ default: AF_ERROR("Incorrect enum value for input color type", AF_ERR_ARG);
+ }
}
+ CATCHALL;
+
+ return AF_SUCCESS;
}
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/arrayfire.git
More information about the debian-science-commits
mailing list