diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-05-22 09:55:36 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-05-22 09:55:36 +0000 |
commit | 571883a217da5e947baff016f49d934e01618668 (patch) | |
tree | c4eae4df3192b14cbe8acf762200d2f0ea976e5c /vm.c | |
parent | 5fa02c5951496d9c34f2cc09d097b0181729b021 (diff) | |
download | ruby-571883a217da5e947baff016f49d934e01618668.tar.gz |
* vm.c (vm_get_ruby_level_cfp): moved from eval_intern.h.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16530 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'vm.c')
-rw-r--r-- | vm.c | 18 |
1 files changed, 18 insertions, 0 deletions
@@ -94,6 +94,18 @@ rb_vm_set_eval_stack(rb_thread_t * const th, const VALUE iseqval, NODE * const c } } +rb_control_frame_t * +vm_get_ruby_level_cfp(rb_thread_t *th, rb_control_frame_t *cfp) +{ + while (!RUBY_VM_CONTROL_FRAME_STACK_OVERFLOW_P(th, cfp)) { + if (RUBY_VM_NORMAL_ISEQ_P(cfp->iseq)) { + return cfp; + } + cfp = RUBY_VM_PREVIOUS_CONTROL_FRAME(cfp); + } + return 0; +} + /* Env */ static void @@ -787,6 +799,7 @@ vm_backtrace(rb_thread_t * const th, int lev) return ary; } +#if 0 static void check_svar(void) { @@ -802,6 +815,7 @@ check_svar(void) cfp++; } } +#endif NODE * ruby_cref(void) @@ -1545,6 +1559,7 @@ rb_thread_recycle_stack_release(VALUE * const stack) #endif } +#ifdef USE_THREAD_RECYCLE static rb_thread_t * thread_recycle_struct(void) { @@ -1552,6 +1567,7 @@ thread_recycle_struct(void) memset(p, 0, sizeof(rb_thread_t)); return p; } +#endif static void thread_free(void * const ptr) @@ -1721,6 +1737,7 @@ extern VALUE *rb_gc_register_stack_start; #endif /* debug functions */ +#if VMDEBUG static VALUE sdr(void) @@ -1752,6 +1769,7 @@ nsdr(void) #endif return ary; } +#endif void Init_VM(void) |