diff options
author | ko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-12-20 07:07:35 +0000 |
---|---|---|
committer | ko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-12-20 07:07:35 +0000 |
commit | 314bef7ef149d7ce87c57fa0c95e30fc8fb9b27f (patch) | |
tree | 0d4ec9f1e50ea5fb278260d7ac8517210761df6e /insnhelper.ci | |
parent | e42fac7c061283180cbc630bd930ef16f5074d33 (diff) | |
download | ruby-314bef7ef149d7ce87c57fa0c95e30fc8fb9b27f.tar.gz |
* insnhelper.ci, vm.c, vm_core.h: change interface of
vm_invoke_block() to specify block ptr. [ruby-talk:266422]
* cont.c, eval_jump.ci, insns.def, proc.c, signal.c, thread.c:
apply above change.
* bootstraptest/test_knownbug.rb: move fixed bug.
* bootstraptest/test_block.rb: ditto. and add a test.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14356 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'insnhelper.ci')
-rw-r--r-- | insnhelper.ci | 12 |
1 files changed, 3 insertions, 9 deletions
diff --git a/insnhelper.ci b/insnhelper.ci index 7544345a73..ba390c3aed 100644 --- a/insnhelper.ci +++ b/insnhelper.ci @@ -391,7 +391,7 @@ vm_cfunc_flags(rb_control_frame_t *cfp) static inline VALUE vm_call_bmethod(rb_thread_t *th, ID id, VALUE procval, VALUE recv, - VALUE klass, int argc, VALUE *argv) + VALUE klass, int argc, VALUE *argv, rb_block_t *blockptr) { rb_control_frame_t *cfp = th->cfp; rb_proc_t *proc; @@ -402,7 +402,7 @@ vm_call_bmethod(rb_thread_t *th, ID id, VALUE procval, VALUE recv, (cfp-2)->method_class = klass; GetProcPtr(procval, proc); - val = vm_invoke_proc(th, proc, recv, argc, argv); + val = vm_invoke_proc(th, proc, recv, argc, argv, blockptr); return val; } @@ -516,7 +516,7 @@ vm_call_method(rb_thread_t *th, rb_control_frame_t *cfp, } case NODE_BMETHOD:{ VALUE *argv = cfp->sp - num; - val = vm_call_bmethod(th, id, node->nd_cval, recv, klass, num, argv); + val = vm_call_bmethod(th, id, node->nd_cval, recv, klass, num, argv, blockptr); cfp->sp += - num - 1; break; } @@ -1392,12 +1392,6 @@ vm_expandarray(rb_control_frame_t *cfp, VALUE ary, int num, int flag) } } -static void -call_end_proc(VALUE data) -{ - rb_proc_call(data, rb_ary_new2(0)); -} - static inline int check_cfunc(NODE *mn, void *func) { |