diff src/DLD-FUNCTIONS/eigs.cc @ 10066:2cd940306a06

make unwind_protect frames local
author Jaroslav Hajek <highegg@gmail.com>
date Wed, 06 Jan 2010 13:18:41 +0100
parents 09da0bd91412
children 40dfc0c99116
line wrap: on
line diff
--- a/src/DLD-FUNCTIONS/eigs.cc	Tue Jan 05 13:16:16 2010 +0100
+++ b/src/DLD-FUNCTIONS/eigs.cc	Wed Jan 06 13:18:41 2010 +0100
@@ -340,9 +340,9 @@
 
   warned_imaginary = false;
 
-  unwind_protect::frame_id_t uwp_frame = unwind_protect::begin_frame ();
+  unwind_protect frame;
 
-  unwind_protect::protect_var (call_depth);
+  frame.protect_var (call_depth);
   call_depth++;
 
   if (call_depth > 1)
@@ -350,7 +350,6 @@
       error ("eigs: invalid recursive call");
       if (fcn_name.length())
 	clear_function (fcn_name);
-      unwind_protect::run_frame (uwp_frame);
       return retval;
     }
 
@@ -736,8 +735,6 @@
 
   if (! fcn_name.empty ())
     clear_function (fcn_name);
-
-  unwind_protect::run_frame (uwp_frame);
 #else
   error ("eigs: not available in this version of Octave");
 #endif