diff libinterp/octave-value/ov-usr-fcn.h @ 23653:3bb0a937c071

avoid possible memory errors when parsing function files * ov-builtin.h (octave_builtin::call): Provide default values for nargout and args in declaration. * ov-mex-fcn.h (octave_mex_function::call): Likewise. * ov-usr-fcn.h (octave_user_function::call): Likewise. * parse.h, oct-parse.in.yy (parse_fcn_file, load_fcn_from_file): Return octave_value object instead of raw pointer to octave_function. Change all uses.
author John W. Eaton <jwe@octave.org>
date Tue, 20 Jun 2017 06:57:59 -0400
parents 214cb58ccc1c
children ef71711f6d64
line wrap: on
line diff
--- a/libinterp/octave-value/ov-usr-fcn.h	Mon Jun 19 14:57:34 2017 -0400
+++ b/libinterp/octave-value/ov-usr-fcn.h	Tue Jun 20 06:57:59 2017 -0400
@@ -134,8 +134,9 @@
 
   octave::sys::time time_checked (void) const { return t_checked; }
 
-  octave_value_list call (octave::tree_evaluator& tw, int nargout,
-                          const octave_value_list& args);
+  octave_value_list
+  call (octave::tree_evaluator& tw, int nargout = 0,
+        const octave_value_list& args = octave_value_list ());
 
   octave::tree_statement_list * body (void) { return cmd_list; }
 
@@ -341,8 +342,9 @@
            ? (cname.empty () ? true : cname == dispatch_class ()) : false;
   }
 
-  octave_value_list call (octave::tree_evaluator& tw, int nargout,
-                          const octave_value_list& args);
+  octave_value_list
+  call (octave::tree_evaluator& tw, int nargout = 0,
+        const octave_value_list& args = octave_value_list ());
 
   octave::tree_parameter_list * parameter_list (void) { return param_list; }