mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
provide rb_vm_make_proc/lambda().
* vm.c (rb_vm_make_proc): removed. * vm_core.h: provide utility inline functions * rb_vm_make_proc() * rb_vm_make_lambda() to call rb_vm_make_proc_lambda(). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60796 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
4d6e899a27
commit
003fd99ab3
3 changed files with 14 additions and 8 deletions
2
proc.c
2
proc.c
|
@ -1921,7 +1921,7 @@ rb_mod_define_method(int argc, VALUE *argv, VALUE mod)
|
||||||
break;
|
break;
|
||||||
case block_handler_type_iseq:
|
case block_handler_type_iseq:
|
||||||
case block_handler_type_ifunc:
|
case block_handler_type_ifunc:
|
||||||
body = rb_vm_make_proc_lambda(ec, VM_BH_TO_CAPT_BLOCK(block_handler), rb_cProc, TRUE);
|
body = rb_vm_make_lambda(ec, VM_BH_TO_CAPT_BLOCK(block_handler), rb_cProc);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
6
vm.c
6
vm.c
|
@ -865,12 +865,6 @@ rb_proc_create(VALUE klass, const struct rb_block *block,
|
||||||
return procval;
|
return procval;
|
||||||
}
|
}
|
||||||
|
|
||||||
VALUE
|
|
||||||
rb_vm_make_proc(const rb_execution_context_t *ec, const struct rb_captured_block *captured, VALUE klass)
|
|
||||||
{
|
|
||||||
return rb_vm_make_proc_lambda(ec, captured, klass, FALSE);
|
|
||||||
}
|
|
||||||
|
|
||||||
VALUE
|
VALUE
|
||||||
rb_vm_make_proc_lambda(const rb_execution_context_t *ec, const struct rb_captured_block *captured, VALUE klass, int8_t is_lambda)
|
rb_vm_make_proc_lambda(const rb_execution_context_t *ec, const struct rb_captured_block *captured, VALUE klass, int8_t is_lambda)
|
||||||
{
|
{
|
||||||
|
|
14
vm_core.h
14
vm_core.h
|
@ -1498,8 +1498,20 @@ int rb_ec_frame_method_id_and_class(const rb_execution_context_t *ec, ID *idp, I
|
||||||
void rb_ec_setup_exception(const rb_execution_context_t *ec, VALUE mesg, VALUE cause);
|
void rb_ec_setup_exception(const rb_execution_context_t *ec, VALUE mesg, VALUE cause);
|
||||||
|
|
||||||
VALUE rb_vm_invoke_proc(rb_execution_context_t *ec, rb_proc_t *proc, int argc, const VALUE *argv, VALUE block_handler);
|
VALUE rb_vm_invoke_proc(rb_execution_context_t *ec, rb_proc_t *proc, int argc, const VALUE *argv, VALUE block_handler);
|
||||||
|
|
||||||
VALUE rb_vm_make_proc_lambda(const rb_execution_context_t *ec, const struct rb_captured_block *captured, VALUE klass, int8_t is_lambda);
|
VALUE rb_vm_make_proc_lambda(const rb_execution_context_t *ec, const struct rb_captured_block *captured, VALUE klass, int8_t is_lambda);
|
||||||
VALUE rb_vm_make_proc(const rb_execution_context_t *ec, const struct rb_captured_block *captured, VALUE klass);
|
static inline VALUE
|
||||||
|
rb_vm_make_proc(const rb_execution_context_t *ec, const struct rb_captured_block *captured, VALUE klass)
|
||||||
|
{
|
||||||
|
return rb_vm_make_proc_lambda(ec, captured, klass, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline VALUE
|
||||||
|
rb_vm_make_lambda(const rb_execution_context_t *ec, const struct rb_captured_block *captured, VALUE klass)
|
||||||
|
{
|
||||||
|
return rb_vm_make_proc_lambda(ec, captured, klass, 1);
|
||||||
|
}
|
||||||
|
|
||||||
VALUE rb_vm_make_binding(const rb_execution_context_t *ec, const rb_control_frame_t *src_cfp);
|
VALUE rb_vm_make_binding(const rb_execution_context_t *ec, const rb_control_frame_t *src_cfp);
|
||||||
VALUE rb_vm_env_local_variables(const rb_env_t *env);
|
VALUE rb_vm_env_local_variables(const rb_env_t *env);
|
||||||
const rb_env_t *rb_vm_env_prev_env(const rb_env_t *env);
|
const rb_env_t *rb_vm_env_prev_env(const rb_env_t *env);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue