Mercurial > hg > octave-lyh
diff src/toplev.cc @ 5744:1c36a2e82266
[project @ 2006-04-06 19:38:34 by jwe]
author | jwe |
---|---|
date | Thu, 06 Apr 2006 19:38:35 +0000 |
parents | a527e0f77aa5 |
children | 7ba9ad1fec11 |
line wrap: on
line diff
--- a/src/toplev.cc +++ b/src/toplev.cc @@ -109,8 +109,27 @@ return retval; } +octave_user_script * +octave_call_stack::do_caller_user_script (void) +{ + octave_user_script *retval = 0; + + for (iterator p = cs.begin (); p != cs.end (); p++) + { + octave_function *f = *p; + + if (f && f->is_user_script ()) + { + retval = dynamic_cast<octave_user_script *> (f); + break; + } + } + + return retval; +} + octave_user_function * -octave_call_stack::do_caller_script (void) +octave_call_stack::do_caller_user_function (void) { octave_user_function *retval = 0; @@ -128,6 +147,34 @@ return retval; } +octave_function * +octave_call_stack::do_caller_user_script_or_function (void) +{ + octave_function *retval = 0; + + for (iterator p = cs.begin (); p != cs.end (); p++) + { + octave_function *f = *p; + + if (f && (f->is_user_script () || f->is_user_function ())) + { + retval = f; + break; + } + } + + return retval; +} + +void +octave_call_stack::unwind_pop_script (void *) +{ + octave_function *f = top (); + pop (); + assert (f && f->is_user_script ()); + delete f; +} + static void recover_from_exception (void) {