diff src/variables.cc @ 5743:a527e0f77aa5

[project @ 2006-04-06 08:20:21 by jwe]
author jwe
date Thu, 06 Apr 2006 08:20:23 +0000
parents 40b08b29dd53
children 1c36a2e82266
line wrap: on
line diff
--- a/src/variables.cc	Thu Apr 06 08:15:49 2006 +0000
+++ b/src/variables.cc	Thu Apr 06 08:20:23 2006 +0000
@@ -1625,8 +1625,10 @@
 	      Octave_map ni;
 
 	      std::string caller_function_name;
-	      if (curr_caller_function)
-		caller_function_name = curr_caller_function->name ();
+
+	      octave_function *caller = octave_call_stack::caller ();
+	      if (caller)
+		caller_function_name = caller->name ();
 
 	      ni.assign ("function", caller_function_name);
 	      ni.assign ("level", 1);
@@ -1944,8 +1946,10 @@
     }
   else if (args.length () == 0)
     {
-      if (curr_function)
-        mlock (curr_function->name ());
+      octave_user_function *fcn = octave_call_stack::caller_script ();
+
+      if (fcn)
+        mlock (fcn->name ());
       else
         error ("mlock: invalid use outside a function");
     }
@@ -1976,8 +1980,10 @@
     }
   else if (args.length () == 0)
     {
-      if (curr_function)
-        mlock (curr_function->name ());
+      octave_user_function *fcn = octave_call_stack::caller_script ();
+
+      if (fcn)
+        mlock (fcn->name ());
       else
         error ("munlock: invalid use outside a function");
     }
@@ -2009,8 +2015,10 @@
     }
   else if (args.length () == 0)
     {
-      if (curr_function)
-        retval = mislocked (curr_function->name ());
+      octave_user_function *fcn = octave_call_stack::caller_script ();
+
+      if (fcn)
+        retval = mislocked (fcn->name ());
       else
         error ("mislocked: invalid use outside a function");
     }