improve support of varargs
This commit is contained in:
parent
05cfa06dbb
commit
b05f0057ca
2 changed files with 9 additions and 3 deletions
|
|
@ -66,11 +66,13 @@ static void SWIG_Scilab_SetApiContext(void *apiCtx) {
|
||||||
|
|
||||||
#if SWIG_SCILAB_VERSION >= 540
|
#if SWIG_SCILAB_VERSION >= 540
|
||||||
#define SWIG_CheckInputArgument(pvApiCtx, minInputArgument, maxInputArgument) CheckInputArgument(pvApiCtx, minInputArgument, maxInputArgument)
|
#define SWIG_CheckInputArgument(pvApiCtx, minInputArgument, maxInputArgument) CheckInputArgument(pvApiCtx, minInputArgument, maxInputArgument)
|
||||||
|
#define SWIG_CheckInputArgumentAtLeast(pvApiCtx, minInputArgument) CheckInputArgumentAtLeast(pvApiCtx, minInputArgument)
|
||||||
#define SWIG_CheckOutputArgument(pvApiCtx, minOutputArgument, maxOutputArgument) CheckOutputArgument(pvApiCtx, minOutputArgument, maxOutputArgument)
|
#define SWIG_CheckOutputArgument(pvApiCtx, minOutputArgument, maxOutputArgument) CheckOutputArgument(pvApiCtx, minOutputArgument, maxOutputArgument)
|
||||||
#define SWIG_NbInputArgument(pvApiCtx) nbInputArgument(pvApiCtx)
|
#define SWIG_NbInputArgument(pvApiCtx) nbInputArgument(pvApiCtx)
|
||||||
#define SWIG_AssignOutputArgument(pvApiCtx, outputArgumentPos, argumentPos) AssignOutputVariable(pvApiCtx, outputArgumentPos) = argumentPos
|
#define SWIG_AssignOutputArgument(pvApiCtx, outputArgumentPos, argumentPos) AssignOutputVariable(pvApiCtx, outputArgumentPos) = argumentPos
|
||||||
#else
|
#else
|
||||||
#define SWIG_CheckInputArgument(pvApiCtx, minInputArgument, maxInputArgument) CheckRhs(minInputArgument, maxInputArgument)
|
#define SWIG_CheckInputArgument(pvApiCtx, minInputArgument, maxInputArgument) CheckRhs(minInputArgument, maxInputArgument)
|
||||||
|
#define SWIG_CheckInputArgumentAtLeast(pvApiCtx, minInputArgument) CheckRhs(minInputArgument, 256)
|
||||||
#define SWIG_CheckOutputArgument(pvApiCtx, minOutputArgument, maxOutputArgument) CheckLhs(minOutputArgument, maxOutputArgument)
|
#define SWIG_CheckOutputArgument(pvApiCtx, minOutputArgument, maxOutputArgument) CheckLhs(minOutputArgument, maxOutputArgument)
|
||||||
#define SWIG_NbInputArgument(pvApiCtx) Rhs
|
#define SWIG_NbInputArgument(pvApiCtx) Rhs
|
||||||
#define SWIG_AssignOutputArgument(pvApiCtx, outputArgumentPos, argumentPos) LhsVar(outputArgumentPos) = argumentPos
|
#define SWIG_AssignOutputArgument(pvApiCtx, outputArgumentPos, argumentPos) LhsVar(outputArgumentPos) = argumentPos
|
||||||
|
|
|
||||||
|
|
@ -346,14 +346,18 @@ public:
|
||||||
emit_attach_parmmaps(functionParamsList, wrapper);
|
emit_attach_parmmaps(functionParamsList, wrapper);
|
||||||
Setattr(node, "wrap:parms", functionParamsList);
|
Setattr(node, "wrap:parms", functionParamsList);
|
||||||
|
|
||||||
/* Check arguments */
|
/* Check input/output arguments count */
|
||||||
int maxInputArguments = emit_num_arguments(functionParamsList);
|
int maxInputArguments = emit_num_arguments(functionParamsList);
|
||||||
int minInputArguments = emit_num_required(functionParamsList);
|
int minInputArguments = emit_num_required(functionParamsList);
|
||||||
int minOutputArguments = 0;
|
int minOutputArguments = 0;
|
||||||
int maxOutputArguments = 0;
|
int maxOutputArguments = 0;
|
||||||
|
|
||||||
/* Insert calls to CheckInputArgument and CheckOutputArgument */
|
if (!emit_isvarargs(functionParamsList)) {
|
||||||
Printf(wrapper->code, "SWIG_CheckInputArgument(pvApiCtx, $mininputarguments, $maxinputarguments);\n");
|
Printf(wrapper->code, "SWIG_CheckInputArgument(pvApiCtx, $mininputarguments, $maxinputarguments);\n");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
Printf(wrapper->code, "SWIG_CheckInputArgumentAtLeast(pvApiCtx, $mininputarguments-1);\n");
|
||||||
|
}
|
||||||
Printf(wrapper->code, "SWIG_CheckOutputArgument(pvApiCtx, $minoutputarguments, $maxoutputarguments);\n");
|
Printf(wrapper->code, "SWIG_CheckOutputArgument(pvApiCtx, $minoutputarguments, $maxoutputarguments);\n");
|
||||||
|
|
||||||
/* Set context */
|
/* Set context */
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue