#include "stack-frame.h"
Public Types | |
enum | auto_var_type { ARG_NAMES , IGNORED , NARGIN , NARGOUT , SAVED_WARNING_STATES , NUM_AUTO_VARS } |
typedef std::map< std::string, octave_value > | local_vars_map |
enum | scope_flags { LOCAL , GLOBAL , PERSISTENT } |
Public Member Functions | |
stack_frame (const stack_frame &elt)=default | |
stack_frame (tree_evaluator &tw, size_t index, const std::shared_ptr< stack_frame > &parent_link, const std::shared_ptr< stack_frame > &static_link, const std::shared_ptr< stack_frame > &access_link) | |
stack_frame (void)=delete | |
virtual | ~stack_frame (void)=default |
virtual void | accept (stack_frame_walker &sfw)=0 |
std::shared_ptr< stack_frame > | access_link (void) const |
symbol_info_list | all_variables (void) |
void | assign (const std::string &name, const octave_value &val) |
void | assign (const symbol_record &sym, const octave_value &val) |
void | assign (octave_value::assign_op op, const symbol_record &sym, const std::string &type, const std::list< octave_value_list > &idx, const octave_value &rhs) |
void | clear (const symbol_record &sym) |
void | clear_objects (void) |
virtual void | clear_values (void) |
void | clear_variable (const std::string &name) |
void | clear_variable_pattern (const std::string &pattern) |
void | clear_variable_pattern (const string_vector &patterns) |
void | clear_variable_regexp (const std::string &pattern) |
void | clear_variable_regexp (const string_vector &patterns) |
void | clear_variables (void) |
void | column (int c) |
int | column (void) const |
virtual void | display (bool follow=true) const |
void | display_stopped_in_message (std::ostream &os) const |
void | do_non_const_unary_op (octave_value::unary_op op, const symbol_record &sym, const std::string &type, const std::list< octave_value_list > &idx) |
std::string | fcn_file_name (void) const |
std::string | fcn_name (bool print_subfn=true) const |
octave_value | find_subfunction (const std::string &name) const |
virtual octave_function * | function (void) const |
virtual octave_value | get_auto_fcn_var (auto_var_type) const =0 |
std::string | get_dispatch_class (void) const |
virtual symbol_scope | get_scope (void) const =0 |
virtual scope_flags | get_scope_flag (size_t) const |
symbol_info_list | get_symbol_info (void) |
symbol_info_list | glob_symbol_info (const std::string &pattern) |
size_t | index (void) const |
virtual symbol_record | insert_symbol (const std::string &)=0 |
void | install_variable (const std::string &name, const octave_value &value, bool global) |
void | install_variable (const symbol_record &sym, const octave_value &value, bool global) |
virtual bool | is_compiled_fcn_frame (void) const |
bool | is_defined (const symbol_record &sym) const |
bool | is_global (const std::string &name) const |
bool | is_global (const symbol_record &sym) const |
bool | is_local_variable (const std::string &name) const |
bool | is_object (const std::string &name) const |
bool | is_object (const symbol_record &sym) const |
bool | is_persistent (const std::string &name) const |
bool | is_persistent (const symbol_record &sym) const |
virtual bool | is_scope_frame (void) const |
virtual bool | is_user_fcn_frame (void) const |
virtual bool | is_user_script_frame (void) const |
bool | is_variable (const std::string &name) const |
bool | is_variable (const symbol_record &sym) const |
void | line (int l) |
int | line (void) const |
virtual symbol_record | lookup_symbol (const std::string &) const =0 |
void | make_global (const symbol_record &sym) |
void | make_persistent (const symbol_record &sym) |
symbol_info_list | make_symbol_info_list (const std::list< symbol_record > &symrec_list) const |
void | mark_global (const symbol_record &sym) |
void | mark_persistent (const symbol_record &sym) |
virtual void | mark_scope (const symbol_record &, scope_flags)=0 |
stack_frame & | operator= (const stack_frame &elt)=delete |
std::shared_ptr< stack_frame > | parent_link (void) const |
symbol_info_list | regexp_symbol_info (const std::string &pattern) |
virtual void | resize (size_t) |
virtual scope_flags | scope_flag (const symbol_record &) const =0 |
virtual void | set_auto_fcn_var (auto_var_type, const octave_value &)=0 |
void | set_dispatch_class (const std::string &class_name) |
virtual void | set_scope_flag (size_t, scope_flags) |
virtual size_t | size (void) const |
std::shared_ptr< stack_frame > | static_link (void) const |
void | unmark_global (const symbol_record &sym) |
void | unmark_persistent (const symbol_record &sym) |
virtual unwind_protect * | unwind_protect_frame (void) |
octave_value | value (const symbol_record &sym, const std::string &type, const std::list< octave_value_list > &idx) const |
std::list< std::string > | variable_names (void) const |
virtual octave_value & | varref (const symbol_record &sym)=0 |
virtual octave_value & | varref (size_t data_offset) |
octave_value | varval (const std::string &name) const |
virtual octave_value | varval (const symbol_record &sym) const =0 |
virtual octave_value | varval (size_t data_offset) const |
octave_value | who (const string_vector &patterns, bool have_regexp, bool return_list, bool verbose, const std::string &whos_line_fmt, const std::string &msg) |
octave_value | workspace (void) |
Static Public Member Functions | |
static stack_frame * | create (tree_evaluator &tw, const symbol_scope &scope, size_t index, const std::shared_ptr< stack_frame > &parent_link, const std::shared_ptr< stack_frame > &static_link) |
static stack_frame * | create (tree_evaluator &tw, octave_function *fcn, size_t index, const std::shared_ptr< stack_frame > &parent_link, const std::shared_ptr< stack_frame > &static_link) |
static stack_frame * | create (tree_evaluator &tw, octave_user_function *fcn, size_t index, const std::shared_ptr< stack_frame > &parent_link, const std::shared_ptr< stack_frame > &static_link, const local_vars_map &local_vars) |
static stack_frame * | create (tree_evaluator &tw, octave_user_function *fcn, size_t index, const std::shared_ptr< stack_frame > &parent_link, const std::shared_ptr< stack_frame > &static_link, const std::shared_ptr< stack_frame > &access_link=std::shared_ptr< stack_frame >()) |
static stack_frame * | create (tree_evaluator &tw, octave_user_script *script, size_t index, const std::shared_ptr< stack_frame > &parent_link, const std::shared_ptr< stack_frame > &static_link) |
Protected Attributes | |
std::shared_ptr< stack_frame > | m_access_link |
int | m_column |
std::string | m_dispatch_class |
tree_evaluator & | m_evaluator |
size_t | m_index |
int | m_line |
std::shared_ptr< stack_frame > | m_parent_link |
std::shared_ptr< stack_frame > | m_static_link |
Definition at line 108 of file stack-frame.h.
typedef std::map<std::string, octave_value> octave::stack_frame::local_vars_map |
Definition at line 112 of file stack-frame.h.
Enumerator | |
---|---|
ARG_NAMES | |
IGNORED | |
NARGIN | |
NARGOUT | |
SAVED_WARNING_STATES | |
NUM_AUTO_VARS |
Definition at line 130 of file stack-frame.h.
Enumerator | |
---|---|
LOCAL | |
GLOBAL | |
PERSISTENT |
Definition at line 120 of file stack-frame.h.
|
delete |
|
inline |
Definition at line 142 of file stack-frame.h.
|
default |
|
virtualdefault |
|
pure virtual |
Implemented in octave::scope_stack_frame, octave::user_fcn_stack_frame, octave::script_stack_frame, and octave::compiled_fcn_stack_frame.
Referenced by all_variables(), clear_objects(), clear_variable(), clear_variable_pattern(), clear_variable_regexp(), clear_variables(), glob_symbol_info(), regexp_symbol_info(), and who().
|
inline |
Definition at line 315 of file stack-frame.h.
References m_access_link.
Referenced by create(), display(), octave::user_fcn_stack_frame::lookup_symbol(), octave::script_stack_frame::mark_scope(), octave::script_stack_frame::scope_flag(), octave::user_fcn_stack_frame::scope_flag(), octave::script_stack_frame::varref(), octave::user_fcn_stack_frame::varref(), octave::script_stack_frame::varval(), octave::user_fcn_stack_frame::varval(), octave::symbol_cleaner::visit_scope_stack_frame(), octave::symbol_info_accumulator::visit_scope_stack_frame(), octave::symbol_cleaner::visit_script_stack_frame(), octave::symbol_info_accumulator::visit_script_stack_frame(), octave::symbol_cleaner::visit_user_fcn_stack_frame(), octave::symbol_info_accumulator::visit_user_fcn_stack_frame(), and workspace().
symbol_info_list octave::stack_frame::all_variables | ( | void | ) |
Definition at line 1149 of file stack-frame.cc.
References accept(), and octave::symbol_info_accumulator::symbol_info().
Referenced by get_symbol_info(), and workspace().
|
inline |
Definition at line 454 of file stack-frame.h.
References assign(), insert_symbol(), and name.
|
inline |
Definition at line 443 of file stack-frame.h.
References octave_value::call_object_destructor(), octave_value::get_count(), octave_value::storable_value(), and varref().
Referenced by octave::user_fcn_stack_frame::user_fcn_stack_frame(), assign(), clear(), and install_variable().
|
inline |
Definition at line 461 of file stack-frame.h.
References octave_value::assign(), assign(), octave_value::op_asn_eq, and varref().
|
inline |
Definition at line 515 of file stack-frame.h.
References assign(), is_global(), is_persistent(), unmark_global(), and unmark_persistent().
Referenced by install_variable(), and octave::symbol_cleaner::maybe_clear_symbol().
void octave::stack_frame::clear_objects | ( | void | ) |
Definition at line 1333 of file stack-frame.cc.
References accept().
|
virtual |
Reimplemented in octave::user_fcn_stack_frame.
Definition at line 1081 of file stack-frame.cc.
References warning().
void octave::stack_frame::clear_variable | ( | const std::string & | name | ) |
Definition at line 1340 of file stack-frame.cc.
void octave::stack_frame::clear_variable_pattern | ( | const std::string & | pattern | ) |
Definition at line 1347 of file stack-frame.cc.
References accept().
void octave::stack_frame::clear_variable_pattern | ( | const string_vector & | patterns | ) |
Definition at line 1354 of file stack-frame.cc.
References accept().
void octave::stack_frame::clear_variable_regexp | ( | const std::string & | pattern | ) |
Definition at line 1361 of file stack-frame.cc.
References accept().
void octave::stack_frame::clear_variable_regexp | ( | const string_vector & | patterns | ) |
Definition at line 1368 of file stack-frame.cc.
References accept().
void octave::stack_frame::clear_variables | ( | void | ) |
Definition at line 1375 of file stack-frame.cc.
References accept().
|
inline |
Definition at line 205 of file stack-frame.h.
References m_column.
|
inline |
Definition at line 206 of file stack-frame.h.
References m_column.
|
static |
Definition at line 1069 of file stack-frame.cc.
References index(), parent_link(), and static_link().
|
static |
Definition at line 1034 of file stack-frame.cc.
References index(), parent_link(), and static_link().
Referenced by octave::call_stack::push().
|
static |
Definition at line 1060 of file stack-frame.cc.
References index(), parent_link(), and static_link().
|
static |
Definition at line 1051 of file stack-frame.cc.
References access_link(), index(), parent_link(), and static_link().
|
static |
Definition at line 1042 of file stack-frame.cc.
References index(), parent_link(), and static_link().
|
virtual |
Reimplemented in octave::scope_stack_frame, octave::user_fcn_stack_frame, octave::base_value_stack_frame, octave::script_stack_frame, and octave::compiled_fcn_stack_frame.
Definition at line 1398 of file stack-frame.cc.
References access_link(), m_access_link, m_column, m_index, m_line, m_parent_link, m_static_link, and octave_stdout.
Referenced by octave::compiled_fcn_stack_frame::display(), octave::script_stack_frame::display(), and octave::base_value_stack_frame::display().
void octave::stack_frame::display_stopped_in_message | ( | std::ostream & | os | ) | const |
Definition at line 1382 of file stack-frame.cc.
References fcn_file_name(), fcn_name(), index(), and line().
|
inline |
Definition at line 477 of file stack-frame.h.
References octave_value::do_non_const_unary_op(), and varref().
|
inline |
Definition at line 208 of file stack-frame.h.
References octave_function::fcn_file_name().
Referenced by display_stopped_in_message().
|
inline |
Definition at line 215 of file stack-frame.h.
References octave_base_value::is_anonymous_function(), octave_function::name(), octave_function::parent_fcn_name(), and retval.
Referenced by display_stopped_in_message().
|
inline |
Definition at line 508 of file stack-frame.h.
References octave::symbol_scope::find_subfunction(), get_scope(), and name.
|
inlinevirtual |
Reimplemented in octave::user_fcn_stack_frame, octave::script_stack_frame, and octave::compiled_fcn_stack_frame.
Definition at line 241 of file stack-frame.h.
|
pure virtual |
Implemented in octave::base_value_stack_frame, octave::script_stack_frame, and octave::compiled_fcn_stack_frame.
|
inline |
Definition at line 538 of file stack-frame.h.
References m_dispatch_class.
|
pure virtual |
Implemented in octave::scope_stack_frame, octave::user_fcn_stack_frame, octave::script_stack_frame, and octave::compiled_fcn_stack_frame.
Referenced by octave::symbol_info_accumulator::append_list(), octave::symbol_cleaner::clean_frame(), find_subfunction(), octave::user_fcn_stack_frame::lookup_symbol(), variable_names(), octave::script_stack_frame::varref(), octave::user_fcn_stack_frame::varref(), octave::script_stack_frame::varval(), and octave::user_fcn_stack_frame::varval().
|
virtual |
Reimplemented in octave::base_value_stack_frame.
Definition at line 1251 of file stack-frame.cc.
References panic_impossible.
Referenced by octave::script_stack_frame::scope_flag(), octave::user_fcn_stack_frame::scope_flag(), octave::script_stack_frame::varref(), octave::user_fcn_stack_frame::varref(), octave::script_stack_frame::varval(), and octave::user_fcn_stack_frame::varval().
|
inline |
Definition at line 271 of file stack-frame.h.
References all_variables().
symbol_info_list octave::stack_frame::glob_symbol_info | ( | const std::string & | pattern | ) |
Definition at line 1215 of file stack-frame.cc.
References accept(), and octave::symbol_info_accumulator::symbol_info().
|
inline |
Definition at line 200 of file stack-frame.h.
References m_index.
Referenced by create(), and display_stopped_in_message().
|
pure virtual |
Implemented in octave::compiled_fcn_stack_frame, octave::scope_stack_frame, octave::user_fcn_stack_frame, and octave::script_stack_frame.
Referenced by assign(), and install_variable().
|
inline |
Definition at line 416 of file stack-frame.h.
References insert_symbol(), install_variable(), name, and value().
void octave::stack_frame::install_variable | ( | const symbol_record & | sym, |
const octave_value & | value, | ||
bool | global | ||
) |
Definition at line 1269 of file stack-frame.cc.
References assign(), clear(), octave::tree_evaluator::global_varref(), octave::tree_evaluator::global_varval(), octave_value::is_defined(), is_global(), m_evaluator, mark_global(), octave::symbol_record::name(), value(), varval(), and warning_with_id().
Referenced by install_variable(), make_global(), and make_persistent().
|
inlinevirtual |
Reimplemented in octave::compiled_fcn_stack_frame.
Definition at line 193 of file stack-frame.h.
|
inline |
Definition at line 341 of file stack-frame.h.
References varval().
Referenced by octave::symbol_info_accumulator::filter().
|
inline |
Definition at line 394 of file stack-frame.h.
References is_global(), lookup_symbol(), and name.
|
inline |
Definition at line 389 of file stack-frame.h.
References GLOBAL, and scope_flag().
Referenced by clear(), install_variable(), is_global(), is_local_variable(), make_persistent(), and make_symbol_info_list().
|
inline |
Definition at line 362 of file stack-frame.h.
References is_global(), is_variable(), lookup_symbol(), and name.
|
inline |
Definition at line 376 of file stack-frame.h.
References is_object(), lookup_symbol(), and name.
|
inline |
Definition at line 369 of file stack-frame.h.
References octave_value::isobject(), and varval().
Referenced by is_object(), and octave::symbol_cleaner::maybe_clear_symbol().
|
inline |
Definition at line 406 of file stack-frame.h.
References is_persistent(), lookup_symbol(), and name.
|
inline |
Definition at line 401 of file stack-frame.h.
References PERSISTENT, and scope_flag().
Referenced by clear(), is_persistent(), make_global(), and make_symbol_info_list().
|
inlinevirtual |
Reimplemented in octave::scope_stack_frame.
Definition at line 196 of file stack-frame.h.
|
inlinevirtual |
Reimplemented in octave::user_fcn_stack_frame.
Definition at line 195 of file stack-frame.h.
|
inlinevirtual |
Reimplemented in octave::script_stack_frame.
Definition at line 194 of file stack-frame.h.
|
inline |
Definition at line 355 of file stack-frame.h.
References is_variable(), lookup_symbol(), and name.
|
inline |
Definition at line 348 of file stack-frame.h.
References octave_value::is_defined(), and varval().
Referenced by is_local_variable(), is_variable(), and variable_names().
|
inline |
Definition at line 202 of file stack-frame.h.
References m_line.
|
inline |
Definition at line 203 of file stack-frame.h.
References m_line.
Referenced by display_stopped_in_message().
|
pure virtual |
Implemented in octave::scope_stack_frame, octave::user_fcn_stack_frame, octave::script_stack_frame, and octave::compiled_fcn_stack_frame.
Referenced by is_global(), is_local_variable(), is_object(), is_persistent(), is_variable(), and varval().
|
inline |
Definition at line 295 of file stack-frame.h.
References error(), install_variable(), is_persistent(), mark_global(), and octave::symbol_record::name().
|
inline |
Definition at line 276 of file stack-frame.h.
References error(), install_variable(), octave::symbol_record::is_formal(), is_global(), mark_persistent(), and octave::symbol_record::name().
symbol_info_list octave::stack_frame::make_symbol_info_list | ( | const std::list< symbol_record > & | symrec_list | ) | const |
Definition at line 1087 of file stack-frame.cc.
References octave::base_list< elt_type >::append(), octave_value::is_defined(), is_global(), is_persistent(), value(), and varval().
Referenced by octave::symbol_info_accumulator::append_list().
|
inline |
Definition at line 321 of file stack-frame.h.
References GLOBAL, and mark_scope().
Referenced by install_variable(), and make_global().
|
inline |
Definition at line 331 of file stack-frame.h.
References mark_scope(), and PERSISTENT.
Referenced by make_persistent().
|
pure virtual |
Implemented in octave::scope_stack_frame, octave::user_fcn_stack_frame, octave::script_stack_frame, and octave::compiled_fcn_stack_frame.
Referenced by mark_global(), mark_persistent(), unmark_global(), and unmark_persistent().
|
delete |
|
inline |
symbol_info_list octave::stack_frame::regexp_symbol_info | ( | const std::string & | pattern | ) |
Definition at line 1224 of file stack-frame.cc.
References accept(), and octave::symbol_info_accumulator::symbol_info().
|
virtual |
Reimplemented in octave::base_value_stack_frame, and octave::script_stack_frame.
Definition at line 1242 of file stack-frame.cc.
References panic_impossible.
Referenced by octave::script_stack_frame::varref(), and octave::user_fcn_stack_frame::varref().
|
pure virtual |
Implemented in octave::scope_stack_frame, octave::user_fcn_stack_frame, octave::script_stack_frame, and octave::compiled_fcn_stack_frame.
Referenced by is_global(), and is_persistent().
|
pure virtual |
Implemented in octave::base_value_stack_frame, octave::script_stack_frame, and octave::compiled_fcn_stack_frame.
|
inline |
Definition at line 540 of file stack-frame.h.
References m_dispatch_class.
|
virtual |
Reimplemented in octave::base_value_stack_frame.
Definition at line 1260 of file stack-frame.cc.
References panic_impossible.
|
virtual |
Reimplemented in octave::base_value_stack_frame, and octave::script_stack_frame.
Definition at line 1233 of file stack-frame.cc.
References panic_impossible.
Referenced by octave::script_stack_frame::scope_flag(), octave::user_fcn_stack_frame::scope_flag(), octave::script_stack_frame::varref(), octave::user_fcn_stack_frame::varref(), octave::script_stack_frame::varval(), and octave::user_fcn_stack_frame::varval().
|
inline |
Definition at line 312 of file stack-frame.h.
References m_static_link.
Referenced by create(), octave::script_stack_frame::get_access_link(), octave::user_fcn_stack_frame::get_access_link(), octave::symbol_cleaner::visit_compiled_fcn_stack_frame(), and octave::symbol_info_accumulator::visit_compiled_fcn_stack_frame().
|
inline |
Definition at line 326 of file stack-frame.h.
References LOCAL, and mark_scope().
Referenced by clear().
|
inline |
Definition at line 336 of file stack-frame.h.
References LOCAL, and mark_scope().
Referenced by clear().
|
inlinevirtual |
Reimplemented in octave::user_fcn_stack_frame, and octave::script_stack_frame.
Definition at line 243 of file stack-frame.h.
|
inline |
Definition at line 488 of file stack-frame.h.
References octave_value_list::length(), octave_value(), retval, and varval().
Referenced by install_variable(), and make_symbol_info_list().
std::list< std::string > octave::stack_frame::variable_names | ( | void | ) | const |
Definition at line 1196 of file stack-frame.cc.
References get_scope(), is_variable(), retval, Array< T >::sort(), and octave::symbol_scope::symbols().
|
pure virtual |
|
virtual |
Reimplemented in octave::base_value_stack_frame.
Definition at line 1324 of file stack-frame.cc.
References panic_impossible.
|
inline |
Definition at line 432 of file stack-frame.h.
References lookup_symbol(), name, octave_value(), and varval().
|
pure virtual |
Implemented in octave::scope_stack_frame, octave::user_fcn_stack_frame, octave::script_stack_frame, and octave::compiled_fcn_stack_frame.
Referenced by install_variable(), is_defined(), is_object(), is_variable(), make_symbol_info_list(), value(), varval(), octave::script_stack_frame::varval(), and octave::user_fcn_stack_frame::varval().
|
virtual |
Reimplemented in octave::base_value_stack_frame.
Definition at line 1315 of file stack-frame.cc.
References panic_impossible.
octave_value octave::stack_frame::who | ( | const string_vector & | patterns, |
bool | have_regexp, | ||
bool | return_list, | ||
bool | verbose, | ||
const std::string & | whos_line_fmt, | ||
const std::string & | msg | ||
) |
Definition at line 1107 of file stack-frame.cc.
References accept(), octave::symbol_info_accumulator::display(), octave::symbol_info_accumulator::is_empty(), string_vector::list_in_columns(), octave::symbol_info_accumulator::map_value(), octave::symbol_info_accumulator::names(), octave_stdout, and octave_value().
octave_value octave::stack_frame::workspace | ( | void | ) |
Definition at line 1158 of file stack-frame.cc.
References access_link(), all_variables(), octave_scalar_map::assign(), octave_value::is_defined(), octave::symbol_info_list::names(), and octave::symbol_info_list::varval().
|
protected |
Definition at line 580 of file stack-frame.h.
Referenced by access_link(), display(), octave::script_stack_frame::get_auto_fcn_var(), octave::script_stack_frame::get_val_offsets_internal(), octave::script_stack_frame::lookup_symbol(), octave::script_stack_frame::set_auto_fcn_var(), and octave::script_stack_frame::set_script_offsets_internal().
|
protected |
Definition at line 563 of file stack-frame.h.
|
protected |
Definition at line 584 of file stack-frame.h.
Referenced by get_dispatch_class(), and set_dispatch_class().
|
protected |
Definition at line 558 of file stack-frame.h.
Referenced by install_variable(), octave::script_stack_frame::varref(), octave::user_fcn_stack_frame::varref(), octave::scope_stack_frame::varref(), octave::script_stack_frame::varval(), octave::user_fcn_stack_frame::varval(), and octave::scope_stack_frame::varval().
|
protected |
Definition at line 566 of file stack-frame.h.
|
protected |
Definition at line 562 of file stack-frame.h.
|
protected |
Definition at line 570 of file stack-frame.h.
Referenced by display(), and parent_link().
|
protected |
Definition at line 575 of file stack-frame.h.
Referenced by display(), octave::compiled_fcn_stack_frame::get_auto_fcn_var(), octave::compiled_fcn_stack_frame::get_scope(), octave::compiled_fcn_stack_frame::insert_symbol(), octave::compiled_fcn_stack_frame::lookup_symbol(), octave::compiled_fcn_stack_frame::mark_scope(), octave::compiled_fcn_stack_frame::scope_flag(), octave::compiled_fcn_stack_frame::set_auto_fcn_var(), static_link(), octave::compiled_fcn_stack_frame::varref(), and octave::compiled_fcn_stack_frame::varval().