mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
Deprecate rb_eval_cmd, add rb_eval_cmd_kw
rb_eval_cmd takes a safe level, and now that $SAFE is deprecated, it should be deprecated as well. Replace with rb_eval_cmd_kw, which takes a keyword flag. Switch the two callers to this function.
This commit is contained in:
parent
d03da13b17
commit
c257303ae7
Notes:
git
2019-11-18 08:01:11 +09:00
4 changed files with 13 additions and 5 deletions
|
@ -435,6 +435,7 @@ void rb_attr(VALUE,ID,int,int,int);
|
||||||
int rb_method_boundp(VALUE, ID, int);
|
int rb_method_boundp(VALUE, ID, int);
|
||||||
int rb_method_basic_definition_p(VALUE, ID);
|
int rb_method_basic_definition_p(VALUE, ID);
|
||||||
VALUE rb_eval_cmd(VALUE, VALUE, int);
|
VALUE rb_eval_cmd(VALUE, VALUE, int);
|
||||||
|
VALUE rb_eval_cmd_kw(VALUE, VALUE, int);
|
||||||
int rb_obj_respond_to(VALUE, ID, int);
|
int rb_obj_respond_to(VALUE, ID, int);
|
||||||
int rb_respond_to(VALUE, ID);
|
int rb_respond_to(VALUE, ID);
|
||||||
NORETURN(VALUE rb_f_notimplement(int argc, const VALUE *argv, VALUE obj, VALUE marker));
|
NORETURN(VALUE rb_f_notimplement(int argc, const VALUE *argv, VALUE obj, VALUE marker));
|
||||||
|
|
2
signal.c
2
signal.c
|
@ -1043,7 +1043,7 @@ signal_exec(VALUE cmd, int sig)
|
||||||
EC_PUSH_TAG(ec);
|
EC_PUSH_TAG(ec);
|
||||||
if ((state = EC_EXEC_TAG()) == TAG_NONE) {
|
if ((state = EC_EXEC_TAG()) == TAG_NONE) {
|
||||||
VALUE signum = INT2NUM(sig);
|
VALUE signum = INT2NUM(sig);
|
||||||
rb_eval_cmd(cmd, rb_ary_new3(1, signum), 0);
|
rb_eval_cmd_kw(cmd, rb_ary_new3(1, signum), RB_NO_KEYWORDS);
|
||||||
}
|
}
|
||||||
EC_POP_TAG();
|
EC_POP_TAG();
|
||||||
ec = GET_EC();
|
ec = GET_EC();
|
||||||
|
|
|
@ -526,7 +526,7 @@ rb_define_virtual_variable(
|
||||||
static void
|
static void
|
||||||
rb_trace_eval(VALUE cmd, VALUE val)
|
rb_trace_eval(VALUE cmd, VALUE val)
|
||||||
{
|
{
|
||||||
rb_eval_cmd(cmd, rb_ary_new3(1, val), 0);
|
rb_eval_cmd_kw(cmd, rb_ary_new3(1, val), RB_NO_KEYWORDS);
|
||||||
}
|
}
|
||||||
|
|
||||||
VALUE
|
VALUE
|
||||||
|
|
13
vm_eval.c
13
vm_eval.c
|
@ -1777,7 +1777,7 @@ rb_eval_string_wrap(const char *str, int *pstate)
|
||||||
}
|
}
|
||||||
|
|
||||||
VALUE
|
VALUE
|
||||||
rb_eval_cmd(VALUE cmd, VALUE arg, int _level)
|
rb_eval_cmd_kw(VALUE cmd, VALUE arg, int kw_splat)
|
||||||
{
|
{
|
||||||
enum ruby_tag_type state;
|
enum ruby_tag_type state;
|
||||||
volatile VALUE val = Qnil; /* OK */
|
volatile VALUE val = Qnil; /* OK */
|
||||||
|
@ -1786,8 +1786,8 @@ rb_eval_cmd(VALUE cmd, VALUE arg, int _level)
|
||||||
EC_PUSH_TAG(ec);
|
EC_PUSH_TAG(ec);
|
||||||
if ((state = EC_EXEC_TAG()) == TAG_NONE) {
|
if ((state = EC_EXEC_TAG()) == TAG_NONE) {
|
||||||
if (!RB_TYPE_P(cmd, T_STRING)) {
|
if (!RB_TYPE_P(cmd, T_STRING)) {
|
||||||
val = rb_funcallv(cmd, idCall, RARRAY_LENINT(arg),
|
val = rb_funcallv_kw(cmd, idCall, RARRAY_LENINT(arg),
|
||||||
RARRAY_CONST_PTR(arg));
|
RARRAY_CONST_PTR(arg), kw_splat);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
val = eval_string_with_cref(rb_vm_top_self(), cmd, NULL, 0, 0);
|
val = eval_string_with_cref(rb_vm_top_self(), cmd, NULL, 0, 0);
|
||||||
|
@ -1799,6 +1799,13 @@ rb_eval_cmd(VALUE cmd, VALUE arg, int _level)
|
||||||
return val;
|
return val;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
VALUE
|
||||||
|
rb_eval_cmd(VALUE cmd, VALUE arg, int _level)
|
||||||
|
{
|
||||||
|
rb_warn("rb_eval_cmd will be removed in Ruby 3.0");
|
||||||
|
return rb_eval_cmd_kw(cmd, arg, RB_NO_KEYWORDS);
|
||||||
|
}
|
||||||
|
|
||||||
/* block eval under the class/module context */
|
/* block eval under the class/module context */
|
||||||
|
|
||||||
static VALUE
|
static VALUE
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue