# HG changeset patch # User John W. Eaton # Date 1554150533 0 # Node ID 242e66e014d9784267efbed58867bbf1e56778e2 # Parent 4e4a9d7b436e1cda401817e874c573600858c234 eliminate direct access to call stack in ov-usr-fcn.cc * ov-usr-fcn.cc (octave_user_function::restore_warning_states, Fnargin, Fnargout, Fisargout): Eliminate direct access to call stack. diff -r 4e4a9d7b436e -r 242e66e014d9 libinterp/octave-value/ov-usr-fcn.cc --- a/libinterp/octave-value/ov-usr-fcn.cc Mon Apr 01 20:25:34 2019 +0000 +++ b/libinterp/octave-value/ov-usr-fcn.cc Mon Apr 01 20:28:53 2019 +0000 @@ -31,7 +31,6 @@ #include "str-vec.h" #include "builtin-defun-decls.h" -#include "call-stack.h" #include "defaults.h" #include "Cell.h" #include "defun.h" @@ -594,10 +593,10 @@ octave::interpreter& interp = octave::__get_interpreter__ ("octave_user_function::restore_warning_states"); - octave::call_stack& cs = interp.get_call_stack (); + octave::tree_evaluator& tw = interp.get_evaluator (); octave_value val - = cs.get_auto_fcn_var (octave::stack_frame::SAVED_WARNING_STATES); + = tw.get_auto_fcn_var (octave::stack_frame::SAVED_WARNING_STATES); if (val.is_defined ()) { @@ -695,9 +694,9 @@ } else { - octave::call_stack& cs = interp.get_call_stack (); + octave::tree_evaluator& tw = interp.get_evaluator (); - retval = cs.get_auto_fcn_var (octave::stack_frame::NARGIN); + retval = tw.get_auto_fcn_var (octave::stack_frame::NARGIN); if (retval.is_undefined ()) retval = 0; @@ -822,9 +821,9 @@ if (interp.at_top_level ()) error ("nargout: invalid call at top level"); - octave::call_stack& cs = interp.get_call_stack (); + octave::tree_evaluator& tw = interp.get_evaluator (); - retval = cs.get_auto_fcn_var (octave::stack_frame::NARGOUT); + retval = tw.get_auto_fcn_var (octave::stack_frame::NARGOUT); if (retval.is_undefined ()) retval = 0; @@ -894,17 +893,17 @@ if (interp.at_top_level ()) error ("isargout: invalid call at top level"); - octave::call_stack& cs = interp.get_call_stack (); + octave::tree_evaluator& tw = interp.get_evaluator (); octave_value tmp; int nargout1 = 0; - tmp = cs.get_auto_fcn_var (octave::stack_frame::NARGOUT); + tmp = tw.get_auto_fcn_var (octave::stack_frame::NARGOUT); if (tmp.is_defined ()) nargout1 = tmp.int_value (); Matrix ignored; - tmp = cs.get_auto_fcn_var (octave::stack_frame::IGNORED); + tmp = tw.get_auto_fcn_var (octave::stack_frame::IGNORED); if (tmp.is_defined ()) ignored = tmp.matrix_value ();