Fix bug in scilab\matrix.i

This commit is contained in:
Yung Lee 2013-04-29 20:22:12 +08:00
commit dc852580d1

View file

@ -1,5 +1,6 @@
%typemap(in) (double* matrixAsInput, int rows, int cols) { %typemap(in) (double* matrixAsInput, int rows, int cols) {
int *piAddr = NULL; int *piAddr = NULL;
SciErr sciErr;
sciErr = getVarAddressFromPosition(pvApiCtx, $input, &piAddr); sciErr = getVarAddressFromPosition(pvApiCtx, $input, &piAddr);
if (sciErr.iErr) { if (sciErr.iErr) {
printError(&sciErr, 0); printError(&sciErr, 0);
@ -12,9 +13,9 @@
} }
} }
%typemap(in,numinputs=0) (double** matrixAsArgOutput,int* rows, int* cols) %typemap(in,numinputs=0) (double** matrixAsArgOutput,int* rows, int* cols)
{ {
} }
%typemap(arginit) (double** matrixAsArgOutput,int* rows, int* cols) %typemap(arginit) (double** matrixAsArgOutput,int* rows, int* cols)
@ -34,15 +35,14 @@
%typemap(argout) (double** matrixAsArgOutput,int* rows, int* cols) %typemap(argout) (double** matrixAsArgOutput,int* rows, int* cols)
{ {
sciErr = createMatrixOfDouble(pvApiCtx, iVarOut, *$2, *$3, (double *)*$1); SciErr sciErr;
sciErr = createMatrixOfDouble(pvApiCtx, Rhs +$result, *$2, *$3, (double *)*$1);
if (sciErr.iErr) { if (sciErr.iErr) {
printError(&sciErr, 0); printError(&sciErr, 0);
return 0; return 0;
} }
AssignOutputVariable(pvApiCtx, outputPosition) = Rhs +$result;
AssignOutputVariable(pvApiCtx, iOutNum) = iVarOut;
iOutNum++;
iVarOut++;
} }