From 4c86285a996a9be52c63eeef9d917cf18b78302b Mon Sep 17 00:00:00 2001 From: wangyang59 Date: Fri, 11 Nov 2016 13:44:16 -0800 Subject: [PATCH] modifed Paddle.swig to specially handle UnsupportError only --- paddle/api/Matrix.cpp | 3 ++- paddle/api/Paddle.swig | 15 ++++----------- paddle/api/PaddleAPI.h | 9 ++++++--- paddle/api/Vector.cpp | 4 ++-- 4 files changed, 14 insertions(+), 17 deletions(-) diff --git a/paddle/api/Matrix.cpp b/paddle/api/Matrix.cpp index 0c8d2935a0d..e5493a381a6 100644 --- a/paddle/api/Matrix.cpp +++ b/paddle/api/Matrix.cpp @@ -53,7 +53,8 @@ Matrix* Matrix::createDense(const std::vector& data, size_t height, } Matrix* Matrix::createDenseFromNumpy(float* data, int dim1, int dim2, - bool copy, bool useGpu) { + bool copy, bool useGpu) + throw (UnsupportError) { if (useGpu) { /// Gpu mode only supports copy=True if (!copy) { diff --git a/paddle/api/Paddle.swig b/paddle/api/Paddle.swig index e723a669f37..6a0fbc537d9 100644 --- a/paddle/api/Paddle.swig +++ b/paddle/api/Paddle.swig @@ -6,17 +6,10 @@ %} %include "exception.i" -%exception{ - try{ - $action - } - catch(UnsupportError &ex ){ - SWIG_exception(SWIG_RuntimeError, ex.what()); - } - catch( ... ){ - SWIG_fail; - } -} +%typemap(throws) UnsupportError %{ + SWIG_exception(SWIG_RuntimeError, $1.what()); + SWIG_fail; +%} %include "std_vector.i" %include "std_pair.i" diff --git a/paddle/api/PaddleAPI.h b/paddle/api/PaddleAPI.h index 807519e739c..5688ece44d2 100644 --- a/paddle/api/PaddleAPI.h +++ b/paddle/api/PaddleAPI.h @@ -139,7 +139,8 @@ public: static Matrix* createDenseFromNumpy(float* data, int dim1, int dim2, bool copy = true, - bool useGpu = isUsingGpu()); + bool useGpu = isUsingGpu()) + throw (UnsupportError); /** * Create Cpu Dense Matrix from numpy matrix, dtype=float32 @@ -248,7 +249,8 @@ public: bool useGpu = isUsingGpu()); static Vector* createVectorFromNumpy(float* data, int dim, bool copy = true, - bool useGpu = isUsingGpu()); + bool useGpu = isUsingGpu()) + throw (UnsupportError); /** * Create Cpu Vector from numpy array, which dtype=float32 * @@ -311,7 +313,8 @@ public: bool useGpu = isUsingGpu()); static IVector* createVectorFromNumpy(int* data, int dim, bool copy = true, - bool useGpu = isUsingGpu()); + bool useGpu = isUsingGpu()) + throw (UnsupportError); /** * Create Cpu IVector from numpy array, which dtype=int32 diff --git a/paddle/api/Vector.cpp b/paddle/api/Vector.cpp index 547be27ed56..d44cdefc35b 100644 --- a/paddle/api/Vector.cpp +++ b/paddle/api/Vector.cpp @@ -40,7 +40,7 @@ IVector* IVector::create(const std::vector& data, bool useGpu) { } IVector* IVector::createVectorFromNumpy(int* data, int dim, bool copy, - bool useGpu) { + bool useGpu) throw (UnsupportError){ if (useGpu) { /// if use gpu only copy=true is supported if (!copy) { @@ -202,7 +202,7 @@ Vector* Vector::createByPaddleVectorPtr(void* ptr) { } Vector* Vector::createVectorFromNumpy(float* data, int dim, bool copy, - bool useGpu) { + bool useGpu) throw (UnsupportError){ if (useGpu) { /// if use gpu only copy=True is supported if (!copy) { -- GitLab