eval_intern.h: pass_passed_block

* eval_intern.h (pass_passed_block): make helper inline function.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52039 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nobu 2015-10-05 07:10:21 +00:00
parent 57149f76eb
commit 8b4cf7b708
2 changed files with 9 additions and 10 deletions

View File

@ -4,15 +4,14 @@
#include "ruby/ruby.h"
#include "vm_core.h"
#define PASS_PASSED_BLOCK_TH(th) do { \
(th)->passed_block = rb_vm_control_frame_block_ptr(th->cfp); \
(th)->cfp->flag |= VM_FRAME_FLAG_PASSED; \
} while (0)
#define PASS_PASSED_BLOCK() do { \
rb_thread_t * const __th__ = GET_THREAD(); \
PASS_PASSED_BLOCK_TH(__th__); \
} while (0)
static inline void
pass_passed_block(rb_thread_t *th)
{
th->passed_block = rb_vm_control_frame_block_ptr(th->cfp);
th->cfp->flag |= VM_FRAME_FLAG_PASSED;
}
#define PASS_PASSED_BLOCK_TH(th) pass_passed_block(th)
#define PASS_PASSED_BLOCK() pass_passed_block(GET_THREAD())
#ifdef HAVE_STDLIB_H
#include <stdlib.h>

View File

@ -859,7 +859,7 @@ rb_funcallv_public(VALUE recv, ID mid, int argc, const VALUE *argv)
VALUE
rb_funcall_passing_block(VALUE recv, ID mid, int argc, const VALUE *argv)
{
PASS_PASSED_BLOCK_TH(GET_THREAD());
PASS_PASSED_BLOCK();
return rb_call(recv, mid, argc, argv, CALL_PUBLIC);
}