Mercurial > hg > octave-nkf
diff src/ov-usr-fcn.h @ 3875:09323fcea5ab
[project @ 2002-03-06 17:59:40 by jwe]
author | jwe |
---|---|
date | Wed, 06 Mar 2002 17:59:40 +0000 |
parents | 44386b0e53da |
children | f9ea3dcf58ee |
line wrap: on
line diff
--- a/src/ov-usr-fcn.h +++ b/src/ov-usr-fcn.h @@ -36,6 +36,8 @@ #include "ov-fcn.h" #include "ov-typeinfo.h" +#include "SLStack.h" + class string_vector; class octave_value; @@ -115,8 +117,19 @@ std::string function_name (void) { return fcn_name; } - void clear_args_passed (void) - { args_passed = octave_value_list (); } + void save_args_passed (const octave_value_list& args) + { + if (call_depth > 1) + saved_args.push (args_passed); + + args_passed = args; + } + + void restore_args_passed (void) + { + if (! saved_args.empty ()) + args_passed = saved_args.pop (); + } octave_value_list do_multi_index_op (int nargout, const octave_value_list& args); @@ -187,6 +200,9 @@ // The values that were passed as arguments. octave_value_list args_passed; + // A place to store the passed args for recursive calls. + SLStack<octave_value_list> saved_args; + // The number of arguments passed in. int num_args_passed;