varargs fixes.
Added passthrough out typemaps for internal Octave types. git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@10320 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
316a2decd7
commit
7b1cab1554
4 changed files with 31 additions and 8 deletions
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
|
||||
SWIGRUNTIME bool SWIG_check_num_args(const char *func_name, int num_args, int max_args, int min_args) {
|
||||
if (num_args > max_args)
|
||||
SWIGRUNTIME bool SWIG_check_num_args(const char *func_name, int num_args, int max_args, int min_args, int varargs) {
|
||||
if (num_args > max_args && !varargs)
|
||||
error("function %s takes at most %i arguments", func_name, max_args);
|
||||
else if (num_args < min_args)
|
||||
error("function %s requires at least %i arguments", func_name, max_args);
|
||||
|
|
@ -549,7 +549,7 @@ namespace {
|
|||
octave_value_list args;
|
||||
if (!m->first || (!m->first->is_static() && !m->first->is_global()))
|
||||
args.append(as_value());
|
||||
if (skip < (int) ops.size() &&ops[skip] == '(' && ((m->first && m->first->method) || m->second.is_function() || m->second.is_function_handle())) {
|
||||
if (skip < (int) ops.size() && ops[skip] == '(' && ((m->first && m->first->method) || m->second.is_function() || m->second.is_function_handle())) {
|
||||
args.append(*idx_it++);
|
||||
++skip;
|
||||
sub_ovl = member_invoke(m, args, nargout);
|
||||
|
|
|
|||
|
|
@ -50,9 +50,31 @@
|
|||
for (int j=$argnum-1;j<args.length();++j)
|
||||
$1.append(args(j));
|
||||
}
|
||||
%typecheck(2000) (octave_value_list varargs,...) {
|
||||
$1=1;
|
||||
}
|
||||
|
||||
%typemap(in) (const octave_value_list& varargs,...) (octave_value_list tmp) {
|
||||
for (int j=$argnum-1;j<args.length();++j)
|
||||
tmp.append(args(j));
|
||||
$1=&tmp;
|
||||
}
|
||||
%typecheck(2000) (const octave_value_list& varargs,...) {
|
||||
$1=1;
|
||||
}
|
||||
|
||||
%typemap(out) octave_value_list {
|
||||
_outp->append($1);
|
||||
}
|
||||
%typemap(out,noblock=1) Octave_map {
|
||||
$result=$1;
|
||||
}
|
||||
%typemap(out,noblock=1) NDArray {
|
||||
$result=$1;
|
||||
}
|
||||
%typemap(out,noblock=1) Cell {
|
||||
$result=$1;
|
||||
}
|
||||
|
||||
/*
|
||||
// Smart Pointers
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue