diff libinterp/octave-value/ov-fcn.h @ 28439:e760fef2829c stable

refactor octave_fcn_handle class * ov-fcn-handle.h, ov-fcn-handle.cc (class octave_fcn_handle): split octave_fcn_handle internally into separate sub-classes for the following types of function handles: simple, scoped, nested, classsimple, and anonymous. Update all uses. * load-path.cc (load_path::package_info::find_private_fcn): Don't search for private files that are not already in the private function map. * ls-mat5.cc (read_mat5_binary_element): Update handling of local variables for anonymous functions. * stack-frame.h, stack-frame.cc (stack_frame::set_closure_links, stack_frame::dup, compiled_fcn_stack_frame::dup, script_stack_frame::dup, user_fcn_stack_frame::dup, scope_stack_frame::dup): Delete unnecessary functions. * ov-fcn.h (octave_function::is_nested_function, octave_function::is_parent_function): New virtual functions.
author John W. Eaton <jwe@octave.org>
date Wed, 29 Apr 2020 14:10:27 -0400
parents 71c34141cc2d
children b743a63e2dab fab862fedf85
line wrap: on
line diff
--- a/libinterp/octave-value/ov-fcn.h	Wed Jun 10 17:01:31 2020 -0400
+++ b/libinterp/octave-value/ov-fcn.h	Wed Apr 29 14:10:27 2020 -0400
@@ -104,6 +104,10 @@
 
   virtual int call_depth (void) const { return 0; }
 
+  virtual bool is_nested_function (void) const { return false; }
+
+  virtual bool is_parent_function (void) const { return false; }
+
   virtual bool is_subfunction (void) const { return false; }
 
   bool is_class_constructor (const std::string& cname = "") const