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 }; + +