From 613d1a1a8d56389483ec95088ff3ae3268328c6a Mon Sep 17 00:00:00 2001 From: Baozeng Ding Date: Wed, 3 Mar 2010 11:39:17 +0000 Subject: [PATCH] add matrix.i git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/branches/gsoc2009-sploving@11893 626c5289-ae23-0410-ae9c-e8d60b6d4f22 --- Examples/scilab/matrix2/matrixlib.i | 15 ++------------- Lib/scilab/matrix.i | 13 +++++++++++++ Lib/scilab/scitypemaps.swg | 2 ++ 3 files changed, 17 insertions(+), 13 deletions(-) create mode 100644 Lib/scilab/matrix.i diff --git a/Examples/scilab/matrix2/matrixlib.i b/Examples/scilab/matrix2/matrixlib.i index ac3c551af..54685b2ea 100755 --- a/Examples/scilab/matrix2/matrixlib.i +++ b/Examples/scilab/matrix2/matrixlib.i @@ -1,17 +1,6 @@ %module matrixlib -%typemap (in,noblock=1) (double *first, int nbRow, int nbCol){ - int *piAddr = NULL; - sciErr = getVarAddressFromPosition(pvApiCtx, 1, &piAddr); - if (sciErr.iErr) { - printError(&sciErr, 0); - return 0; - } - sciErr = getMatrixOfDouble(pvApiCtx, piAddr, &$2, &$3, &$1); - if (sciErr.iErr) { - printError(&sciErr, 0); - return 0; - } -} +%include "matrix.i" +extern double sumitems(double *, int, int); %typemap (in) (int *numberOfRow, int *numberOfCol) { $1 = &iRowsOut; $2 = &iColsOut; diff --git a/Lib/scilab/matrix.i b/Lib/scilab/matrix.i new file mode 100644 index 000000000..5ef5383f3 --- /dev/null +++ b/Lib/scilab/matrix.i @@ -0,0 +1,13 @@ +%typemap(in) (double*, int, int) { + int *piAddr = NULL; + sciErr = getVarAddressFromPosition(pvApiCtx, 1, &piAddr); + if (sciErr.iErr) { + printError(&sciErr, 0); + return 0; + } + sciErr = getMatrixOfDouble(pvApiCtx, piAddr, &$2, &$3, &$1); + if (sciErr.iErr) { + printError(&sciErr, 0); + return 0; + } +} diff --git a/Lib/scilab/scitypemaps.swg b/Lib/scilab/scitypemaps.swg index ef86530c8..5f9b6fda4 100644 --- a/Lib/scilab/scitypemaps.swg +++ b/Lib/scilab/scitypemaps.swg @@ -2167,3 +2167,5 @@ * ------------------------------------------------------------ */ %apply int { size_t }; + +