Scilab: fix arrays_global test_case

This commit is contained in:
Simon Marchetto 2013-07-31 18:28:45 +02:00
commit 6735b9727f

View file

@ -99,23 +99,27 @@ SWIGINTERN int
SwigScilabStringToCharPtr(void *_pvApiCtx, int _iVar, char *_pcValue, int _iLength, char *_fname) { SwigScilabStringToCharPtr(void *_pvApiCtx, int _iVar, char *_pcValue, int _iLength, char *_fname) {
SciErr sciErr; SciErr sciErr;
int *piAddrVar = NULL; int *piAddrVar = NULL;
char* pcTmpValue = NULL;
int iRet; int iRet;
if (_pcValue == NULL) {
return SWIG_ERROR;
}
sciErr = getVarAddressFromPosition(_pvApiCtx, _iVar, &piAddrVar); sciErr = getVarAddressFromPosition(_pvApiCtx, _iVar, &piAddrVar);
if (sciErr.iErr) { if (sciErr.iErr) {
printError(&sciErr, 0); printError(&sciErr, 0);
return SWIG_ERROR; return SWIG_ERROR;
} }
if (_pcValue == NULL) { iRet = getAllocatedSingleString(_pvApiCtx, piAddrVar, &pcTmpValue);
return SWIG_ERROR;
}
iRet = getAllocatedSingleString(_pvApiCtx, piAddrVar, &_pcValue);
if (iRet) { if (iRet) {
return SWIG_ERROR; return SWIG_ERROR;
} }
strncpy(_pcValue, pcTmpValue, _iLength);
free(pcTmpValue);
return SWIG_OK; return SWIG_OK;
} }
} }