changeset 4987:bad4898b468e

[project @ 2004-09-10 20:24:05 by jwe]
author jwe
date Fri, 10 Sep 2004 20:24:06 +0000
parents fac558699d0f
children 352d228d409b
files src/ChangeLog src/ov-builtin.cc src/ov-mapper.cc src/ov-usr-fcn.cc
diffstat 4 files changed, 13 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/src/ChangeLog	Fri Sep 10 15:57:13 2004 +0000
+++ b/src/ChangeLog	Fri Sep 10 20:24:06 2004 +0000
@@ -1,5 +1,9 @@
 2004-09-10  John W. Eaton  <jwe@octave.org>
 
+	* ov-builtin.cc (octave_builtin::do_multi_index_op): Use unwind
+	protect frame instead of a single unwind_protect::run.
+	* ov-mapper.cc (octave_mapper::do_multi_index_op): Likewise.
+
 	* data.cc (fill_matrix, identity_matrix):
 	Also allow logical data type.
 
--- a/src/ov-builtin.cc	Fri Sep 10 15:57:13 2004 +0000
+++ b/src/ov-builtin.cc	Fri Sep 10 20:24:06 2004 +0000
@@ -108,6 +108,8 @@
     ::error ("invalid use of colon in function argument list");
   else
     {
+      unwind_protect::begin_frame ("builtin_func_eval");
+
       unwind_protect_ptr (curr_function);
       unwind_protect_ptr (curr_caller_function);
 
@@ -116,7 +118,7 @@
 
       retval = (*f) (args, nargout);
 
-      unwind_protect::run ();
+      unwind_protect::run_frame ("builtin_func_eval");
     }
 
   return retval;
--- a/src/ov-mapper.cc	Fri Sep 10 15:57:13 2004 +0000
+++ b/src/ov-mapper.cc	Fri Sep 10 20:24:06 2004 +0000
@@ -287,6 +287,8 @@
     {
       if (args(0).is_defined ())
 	{
+	  unwind_protect::begin_frame ("mapper_func_eval");
+
 	  unwind_protect_ptr (curr_function);
 	  unwind_protect_ptr (curr_caller_function);
 
@@ -295,7 +297,7 @@
 
 	  retval = apply (args(0));
 
-	  unwind_protect::run ();
+	  unwind_protect::run_frame ("mapper_func_eval");
 	}
       else
 	::error ("%s: argument undefined", name().c_str ());
--- a/src/ov-usr-fcn.cc	Fri Sep 10 15:57:13 2004 +0000
+++ b/src/ov-usr-fcn.cc	Fri Sep 10 20:24:06 2004 +0000
@@ -337,7 +337,7 @@
 
   int nargin = args.length ();
 
-  unwind_protect::begin_frame ("func_eval");
+  unwind_protect::begin_frame ("user_func_eval");
 
   unwind_protect_int (call_depth);
   call_depth++;
@@ -345,7 +345,7 @@
   if (call_depth > Vmax_recursion_depth)
     {
       ::error ("max_recursion_limit exceeded");
-      unwind_protect::run_frame ("func_eval");
+      unwind_protect::run_frame ("user_func_eval");
       return retval;
     }
 
@@ -493,7 +493,7 @@
   }
 
  abort:
-  unwind_protect::run_frame ("func_eval");
+  unwind_protect::run_frame ("user_func_eval");
 
   return retval;
 }