diff options
-rw-r--r-- | insns.def | 2 | ||||
-rw-r--r-- | vm_insnhelper.c | 11 |
2 files changed, 4 insertions, 9 deletions
@@ -667,7 +667,7 @@ defined (VALUE val) // attr bool leaf = leafness_of_defined(op_type); { - if (vm_defined(ec, GET_CFP(), op_type, obj, Qfalse, v)) { + if (vm_defined(ec, GET_CFP(), op_type, obj, v)) { val = needstr; } else { diff --git a/vm_insnhelper.c b/vm_insnhelper.c index 5f8bffb380..81ac2eb273 100644 --- a/vm_insnhelper.c +++ b/vm_insnhelper.c @@ -3986,7 +3986,7 @@ check_respond_to_missing(VALUE obj, VALUE v) } static VALUE -vm_defined(rb_execution_context_t *ec, rb_control_frame_t *reg_cfp, rb_num_t op_type, VALUE obj, VALUE needstr, VALUE v) +vm_defined(rb_execution_context_t *ec, rb_control_frame_t *reg_cfp, rb_num_t op_type, VALUE obj, VALUE v) { VALUE klass; enum defined_type expr_type = DEFINED_NOT_DEFINED; @@ -4081,15 +4081,10 @@ vm_defined(rb_execution_context_t *ec, rb_control_frame_t *reg_cfp, rb_num_t op_ } if (expr_type != 0) { - if (needstr != Qfalse) { - return rb_iseq_defined_string(expr_type); - } - else { - return Qtrue; - } + return Qtrue; } else { - return Qnil; + return Qfalse; } } |