diff src/ov-class.cc @ 10066:2cd940306a06

make unwind_protect frames local
author Jaroslav Hajek <highegg@gmail.com>
date Wed, 06 Jan 2010 13:18:41 +0100
parents ac69e6f4b33d
children edbe47bc0f88
line wrap: on
line diff
--- a/src/ov-class.cc	Tue Jan 05 13:16:16 2010 +0100
+++ b/src/ov-class.cc	Wed Jan 06 13:18:41 2010 +0100
@@ -578,12 +578,11 @@
           if (obsolete_copies == 0 && meth.is_user_function ()
               && meth.user_function_value ()->subsasgn_optimization_ok ())
             {
-              unwind_protect::protect_var (obsolete_copies);
+              unwind_protect frame;
+              frame.protect_var (obsolete_copies);
               obsolete_copies = 2;
 
               tmp = feval (meth.function_value (), args);
-
-              unwind_protect::run ();
             }
           else
             tmp = feval (meth.function_value (), args);
@@ -983,15 +982,13 @@
 void
 octave_class::print_raw (std::ostream& os, bool) const
 {
-  unwind_protect::frame_id_t uwp_frame = unwind_protect::begin_frame ();
+  unwind_protect frame;
 
-  unwind_protect::protect_var (Vstruct_levels_to_print);
+  frame.protect_var (Vstruct_levels_to_print);
 
   indent (os);
   os << "  <class " << class_name () << ">";
   newline (os);
-
-  unwind_protect::run_frame (uwp_frame);
 }
 
 bool