diff --git a/array.c b/array.c index 0b4998a47c0d1d..f242031b4fffb7 100644 --- a/array.c +++ b/array.c @@ -4555,7 +4555,7 @@ take_items(VALUE obj, long n) if (!NIL_P(result)) return rb_ary_subseq(result, 0, n); result = rb_ary_new2(n); args[0] = result; args[1] = (VALUE)n; - if (rb_check_block_call(obj, idEach, 0, 0, take_i, (VALUE)args) == Qundef) + if (UNDEF_P(rb_check_block_call(obj, idEach, 0, 0, take_i, (VALUE)args))) rb_raise(rb_eTypeError, "wrong argument type %"PRIsVALUE" (must respond to :each)", rb_obj_class(obj)); return result; @@ -5048,7 +5048,7 @@ rb_ary_fill(int argc, VALUE *argv, VALUE ary) ARY_SET_LEN(ary, end); } - if (item == Qundef) { + if (UNDEF_P(item)) { VALUE v; long i; @@ -5505,7 +5505,7 @@ rb_ary_cmp(VALUE ary1, VALUE ary2) if (NIL_P(ary2)) return Qnil; if (ary1 == ary2) return INT2FIX(0); v = rb_exec_recursive_paired(recursive_cmp, ary1, ary2, ary2); - if (v != Qundef) return v; + if (!UNDEF_P(v)) return v; len = RARRAY_LEN(ary1) - RARRAY_LEN(ary2); if (len == 0) return INT2FIX(0); if (len > 0) return INT2FIX(1); @@ -6068,7 +6068,7 @@ rb_ary_max(int argc, VALUE *argv, VALUE ary) if (rb_block_given_p()) { for (i = 0; i < RARRAY_LEN(ary); i++) { v = RARRAY_AREF(ary, i); - if (result == Qundef || rb_cmpint(rb_yield_values(2, v, result), v, result) > 0) { + if (UNDEF_P(result) || rb_cmpint(rb_yield_values(2, v, result), v, result) > 0) { result = v; } } @@ -6090,7 +6090,7 @@ rb_ary_max(int argc, VALUE *argv, VALUE ary) } } } - if (result == Qundef) return Qnil; + if (UNDEF_P(result)) return Qnil; return result; } @@ -6237,7 +6237,7 @@ rb_ary_min(int argc, VALUE *argv, VALUE ary) if (rb_block_given_p()) { for (i = 0; i < RARRAY_LEN(ary); i++) { v = RARRAY_AREF(ary, i); - if (result == Qundef || rb_cmpint(rb_yield_values(2, v, result), v, result) < 0) { + if (UNDEF_P(result) || rb_cmpint(rb_yield_values(2, v, result), v, result) < 0) { result = v; } } @@ -6259,7 +6259,7 @@ rb_ary_min(int argc, VALUE *argv, VALUE ary) } } } - if (result == Qundef) return Qnil; + if (UNDEF_P(result)) return Qnil; return result; } @@ -8148,7 +8148,7 @@ finish_exact_sum(long n, VALUE r, VALUE v, int z) { if (n != 0) v = rb_fix_plus(LONG2FIX(n), v); - if (r != Qundef) { + if (!UNDEF_P(r)) { v = rb_rational_plus(r, v); } else if (!n && z) { @@ -8227,7 +8227,7 @@ rb_ary_sum(int argc, VALUE *argv, VALUE ary) else if (RB_BIGNUM_TYPE_P(e)) v = rb_big_plus(e, v); else if (RB_TYPE_P(e, T_RATIONAL)) { - if (r == Qundef) + if (UNDEF_P(r)) r = e; else r = rb_rational_plus(r, e); diff --git a/class.c b/class.c index 85663ada50ab79..b9d62c18b19e83 100644 --- a/class.c +++ b/class.c @@ -64,7 +64,7 @@ push_subclass_entry_to_list(VALUE super, VALUE klass) void rb_class_subclass_add(VALUE super, VALUE klass) { - if (super && super != Qundef) { + if (super && !UNDEF_P(super)) { rb_subclass_entry_t *entry = push_subclass_entry_to_list(super, klass); RCLASS_SUBCLASS_ENTRY(klass) = entry; } @@ -277,7 +277,7 @@ rb_class_update_superclasses(VALUE klass) VALUE super = RCLASS_SUPER(klass); if (!RB_TYPE_P(klass, T_CLASS)) return; - if (super == Qundef) return; + if (UNDEF_P(super)) return; // If the superclass array is already built if (RCLASS_SUPERCLASSES(klass)) @@ -608,7 +608,7 @@ rb_singleton_class_clone_and_attach(VALUE obj, VALUE attach) arg.klass = clone; rb_id_table_foreach(RCLASS_CONST_TBL(klass), clone_const_i, &arg); } - if (attach != Qundef) { + if (!UNDEF_P(attach)) { rb_singleton_class_attached(clone, attach); } RCLASS_M_TBL_INIT(clone); diff --git a/compar.c b/compar.c index 00e79b5767dc4c..3635d23e79561f 100644 --- a/compar.c +++ b/compar.c @@ -50,7 +50,7 @@ VALUE rb_invcmp(VALUE x, VALUE y) { VALUE invcmp = rb_exec_recursive(invcmp_recursive, x, y); - if (invcmp == Qundef || NIL_P(invcmp)) { + if (UNDEF_P(invcmp) || NIL_P(invcmp)) { return Qnil; } else { diff --git a/compile.c b/compile.c index d8d2738eb8919b..c047408b151042 100644 --- a/compile.c +++ b/compile.c @@ -4820,7 +4820,7 @@ when_vals(rb_iseq_t *iseq, LINK_ANCHOR *const cond_seq, const NODE *vals, const NODE *val = vals->nd_head; VALUE lit = rb_node_case_when_optimizable_literal(val); - if (lit == Qundef) { + if (UNDEF_P(lit)) { only_special_literals = 0; } else if (NIL_P(rb_hash_lookup(literals, lit))) { @@ -7394,7 +7394,7 @@ compile_loop(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, in ADD_LABEL(ret, end_label); ADD_ADJUST_RESTORE(ret, adjust_label); - if (node->nd_state == Qundef) { + if (UNDEF_P(node->nd_state)) { /* ADD_INSN(ret, line_node, putundef); */ COMPILE_ERROR(ERROR_ARGS "unsupported: putundef"); return COMPILE_NG; diff --git a/complex.c b/complex.c index d927f62d5578ec..e9981863c21cb3 100644 --- a/complex.c +++ b/complex.c @@ -561,7 +561,7 @@ nucomp_f_complex(int argc, VALUE *argv, VALUE klass) if (!NIL_P(opts)) { raise = rb_opts_exception_p(opts, raise); } - if (argc > 0 && CLASS_OF(a1) == rb_cComplex && a2 == Qundef) { + if (argc > 0 && CLASS_OF(a1) == rb_cComplex && UNDEF_P(a2)) { return a1; } return nucomp_convert(rb_cComplex, a1, a2, raise); @@ -2107,11 +2107,11 @@ nucomp_convert(VALUE klass, VALUE a1, VALUE a2, int raise) } if (RB_TYPE_P(a1, T_COMPLEX)) { - if (a2 == Qundef || (k_exact_zero_p(a2))) + if (UNDEF_P(a2) || (k_exact_zero_p(a2))) return a1; } - if (a2 == Qundef) { + if (UNDEF_P(a2)) { if (k_numeric_p(a1) && !f_real_p(a1)) return a1; /* should raise exception for consistency */ @@ -2133,7 +2133,7 @@ nucomp_convert(VALUE klass, VALUE a1, VALUE a2, int raise) int argc; VALUE argv2[2]; argv2[0] = a1; - if (a2 == Qundef) { + if (UNDEF_P(a2)) { argv2[1] = Qnil; argc = 1; } diff --git a/cont.c b/cont.c index a85b7fc2d1338a..c967e57325dfdb 100644 --- a/cont.c +++ b/cont.c @@ -1831,7 +1831,7 @@ rollback_ensure_stack(VALUE self,rb_ensure_list_t *current,rb_ensure_entry_t *ta /* push ensure stack */ for (j = 0; j < i; j++) { func = lookup_rollback_func(target[i - j - 1].e_proc); - if ((VALUE)func != Qundef) { + if (!UNDEF_P((VALUE)func)) { (*func)(target[i - j - 1].data2); } } @@ -2058,11 +2058,11 @@ rb_fiber_initialize_kw(int argc, VALUE* argv, VALUE self, int kw_splat) argc = rb_scan_args_kw(kw_splat, argc, argv, ":", &options); rb_get_kwargs(options, fiber_initialize_keywords, 0, 2, arguments); - if (arguments[0] != Qundef) { + if (!UNDEF_P(arguments[0])) { blocking = arguments[0]; } - if (arguments[1] != Qundef) { + if (!UNDEF_P(arguments[1])) { pool = arguments[1]; } } diff --git a/dir.c b/dir.c index a35aace6f1d3c6..4d6d80208c169a 100644 --- a/dir.c +++ b/dir.c @@ -2932,7 +2932,7 @@ dir_globs(VALUE args, VALUE base, int flags) static VALUE dir_glob_option_base(VALUE base) { - if (base == Qundef || NIL_P(base)) { + if (UNDEF_P(base) || NIL_P(base)) { return Qnil; } #if USE_OPENDIR_AT @@ -3343,7 +3343,7 @@ rb_dir_s_empty_p(VALUE obj, VALUE dirname) result = (VALUE)rb_thread_call_without_gvl(nogvl_dir_empty_p, (void *)path, RUBY_UBF_IO, 0); - if (result == Qundef) { + if (UNDEF_P(result)) { rb_sys_fail_path(orig); } return result; diff --git a/enum.c b/enum.c index 4a0403faf1afc1..d900083370932c 100644 --- a/enum.c +++ b/enum.c @@ -779,7 +779,7 @@ inject_i(RB_BLOCK_CALL_FUNC_ARGLIST(i, p)) ENUM_WANT_SVALUE(); - if (memo->v1 == Qundef) { + if (UNDEF_P(memo->v1)) { MEMO_V1_SET(memo, i); } else { @@ -796,7 +796,7 @@ inject_op_i(RB_BLOCK_CALL_FUNC_ARGLIST(i, p)) ENUM_WANT_SVALUE(); - if (memo->v1 == Qundef) { + if (UNDEF_P(memo->v1)) { MEMO_V1_SET(memo, i); } else if (SYMBOL_P(name = memo->u3.value)) { @@ -820,9 +820,9 @@ ary_inject_op(VALUE ary, VALUE init, VALUE op) long i, n; if (RARRAY_LEN(ary) == 0) - return init == Qundef ? Qnil : init; + return UNDEF_P(init) ? Qnil : init; - if (init == Qundef) { + if (UNDEF_P(init)) { v = RARRAY_AREF(ary, 0); i = 1; if (RARRAY_LEN(ary) == 1) @@ -1051,7 +1051,7 @@ enum_inject(int argc, VALUE *argv, VALUE obj) memo = MEMO_NEW(init, Qnil, op); rb_block_call(obj, id_each, 0, 0, iter, (VALUE)memo); - if (memo->v1 == Qundef) return Qnil; + if (UNDEF_P(memo->v1)) return Qnil; return memo->v1; } @@ -1677,7 +1677,7 @@ enum_any(int argc, VALUE *argv, VALUE obj) DEFINE_ENUMFUNCS(one) { if (RTEST(result)) { - if (memo->v1 == Qundef) { + if (UNDEF_P(memo->v1)) { MEMO_V1_SET(memo, Qtrue); } else if (memo->v1 == Qtrue) { @@ -1827,7 +1827,7 @@ nmin_i(RB_BLOCK_CALL_FUNC_ARGLIST(i, _data)) else cmpv = i; - if (data->limit != Qundef) { + if (!UNDEF_P(data->limit)) { int c = data->cmpfunc(&cmpv, &data->limit, data); if (data->rev) c = -c; @@ -1962,7 +1962,7 @@ enum_one(int argc, VALUE *argv, VALUE obj) WARN_UNUSED_BLOCK(argc); rb_block_call(obj, id_each, 0, 0, ENUMFUNC(one), (VALUE)memo); result = memo->v1; - if (result == Qundef) return Qfalse; + if (UNDEF_P(result)) return Qfalse; return result; } @@ -2037,7 +2037,7 @@ min_i(RB_BLOCK_CALL_FUNC_ARGLIST(i, args)) ENUM_WANT_SVALUE(); - if (memo->min == Qundef) { + if (UNDEF_P(memo->min)) { memo->min = i; } else { @@ -2056,7 +2056,7 @@ min_ii(RB_BLOCK_CALL_FUNC_ARGLIST(i, args)) ENUM_WANT_SVALUE(); - if (memo->min == Qundef) { + if (UNDEF_P(memo->min)) { memo->min = i; } else { @@ -2147,7 +2147,7 @@ enum_min(int argc, VALUE *argv, VALUE obj) rb_block_call(obj, id_each, 0, 0, min_i, memo); } result = m->min; - if (result == Qundef) return Qnil; + if (UNDEF_P(result)) return Qnil; return result; } @@ -2163,7 +2163,7 @@ max_i(RB_BLOCK_CALL_FUNC_ARGLIST(i, args)) ENUM_WANT_SVALUE(); - if (memo->max == Qundef) { + if (UNDEF_P(memo->max)) { memo->max = i; } else { @@ -2182,7 +2182,7 @@ max_ii(RB_BLOCK_CALL_FUNC_ARGLIST(i, args)) ENUM_WANT_SVALUE(); - if (memo->max == Qundef) { + if (UNDEF_P(memo->max)) { memo->max = i; } else { @@ -2272,7 +2272,7 @@ enum_max(int argc, VALUE *argv, VALUE obj) rb_block_call(obj, id_each, 0, 0, max_i, (VALUE)memo); } result = m->max; - if (result == Qundef) return Qnil; + if (UNDEF_P(result)) return Qnil; return result; } @@ -2288,7 +2288,7 @@ minmax_i_update(VALUE i, VALUE j, struct minmax_t *memo) { int n; - if (memo->min == Qundef) { + if (UNDEF_P(memo->min)) { memo->min = i; memo->max = j; } @@ -2313,7 +2313,7 @@ minmax_i(RB_BLOCK_CALL_FUNC_ARGLIST(i, _memo)) ENUM_WANT_SVALUE(); - if (memo->last == Qundef) { + if (UNDEF_P(memo->last)) { memo->last = i; return Qnil; } @@ -2340,7 +2340,7 @@ minmax_ii_update(VALUE i, VALUE j, struct minmax_t *memo) { int n; - if (memo->min == Qundef) { + if (UNDEF_P(memo->min)) { memo->min = i; memo->max = j; } @@ -2365,7 +2365,7 @@ minmax_ii(RB_BLOCK_CALL_FUNC_ARGLIST(i, _memo)) ENUM_WANT_SVALUE(); - if (memo->last == Qundef) { + if (UNDEF_P(memo->last)) { memo->last = i; return Qnil; } @@ -2430,15 +2430,15 @@ enum_minmax(VALUE obj) m->cmp_opt.opt_inited = 0; if (rb_block_given_p()) { rb_block_call(obj, id_each, 0, 0, minmax_ii, memo); - if (m->last != Qundef) + if (!UNDEF_P(m->last)) minmax_ii_update(m->last, m->last, m); } else { rb_block_call(obj, id_each, 0, 0, minmax_i, memo); - if (m->last != Qundef) + if (!UNDEF_P(m->last)) minmax_i_update(m->last, m->last, m); } - if (m->min != Qundef) { + if (!UNDEF_P(m->min)) { return rb_assoc_new(m->min, m->max); } return rb_assoc_new(Qnil, Qnil); @@ -2454,7 +2454,7 @@ min_by_i(RB_BLOCK_CALL_FUNC_ARGLIST(i, args)) ENUM_WANT_SVALUE(); v = enum_yield(argc, i); - if (memo->v1 == Qundef) { + if (UNDEF_P(memo->v1)) { MEMO_V1_SET(memo, v); MEMO_V2_SET(memo, i); } @@ -2529,7 +2529,7 @@ max_by_i(RB_BLOCK_CALL_FUNC_ARGLIST(i, args)) ENUM_WANT_SVALUE(); v = enum_yield(argc, i); - if (memo->v1 == Qundef) { + if (UNDEF_P(memo->v1)) { MEMO_V1_SET(memo, v); MEMO_V2_SET(memo, i); } @@ -2608,7 +2608,7 @@ minmax_by_i_update(VALUE v1, VALUE v2, VALUE i1, VALUE i2, struct minmax_by_t *m { struct cmp_opt_data cmp_opt = { 0, 0 }; - if (memo->min_bv == Qundef) { + if (UNDEF_P(memo->min_bv)) { memo->min_bv = v1; memo->max_bv = v2; memo->min = i1; @@ -2638,7 +2638,7 @@ minmax_by_i(RB_BLOCK_CALL_FUNC_ARGLIST(i, _memo)) vi = enum_yield(argc, i); - if (memo->last_bv == Qundef) { + if (UNDEF_P(memo->last_bv)) { memo->last_bv = vi; memo->last = i; return Qnil; @@ -2705,7 +2705,7 @@ enum_minmax_by(VALUE obj) m->last_bv = Qundef; m->last = Qundef; rb_block_call(obj, id_each, 0, 0, minmax_by_i, memo); - if (m->last_bv != Qundef) + if (!UNDEF_P(m->last_bv)) minmax_by_i_update(m->last_bv, m->last_bv, m->last, m->last, m); m = MEMO_FOR(struct minmax_by_t, memo); return rb_assoc_new(m->min, m->max); @@ -3185,7 +3185,7 @@ zip_i(RB_BLOCK_CALL_FUNC_ARGLIST(val, memoval)) v[1] = RARRAY_AREF(args, i); rb_rescue2(call_next, (VALUE)v, call_stop, (VALUE)v, rb_eStopIteration, (VALUE)0); - if (v[0] == Qundef) { + if (UNDEF_P(v[0])) { RARRAY_ASET(args, i, Qnil); v[0] = Qnil; } @@ -4155,7 +4155,7 @@ slicewhen_ii(RB_BLOCK_CALL_FUNC_ARGLIST(i, _memo)) ENUM_WANT_SVALUE(); - if (memo->prev_elt == Qundef) { + if (UNDEF_P(memo->prev_elt)) { /* The first element */ memo->prev_elt = i; memo->prev_elts = rb_ary_new3(1, i); @@ -4395,7 +4395,7 @@ sum_iter_bignum(VALUE i, struct enum_sum_memo *memo) static void sum_iter_rational(VALUE i, struct enum_sum_memo *memo) { - if (memo->r == Qundef) { + if (UNDEF_P(memo->r)) { memo->r = i; } else { @@ -4616,7 +4616,7 @@ enum_sum(int argc, VALUE* argv, VALUE obj) else { if (memo.n != 0) memo.v = rb_fix_plus(LONG2FIX(memo.n), memo.v); - if (memo.r != Qundef) { + if (!UNDEF_P(memo.r)) { memo.v = rb_rational_plus(memo.r, memo.v); } return memo.v; diff --git a/enumerator.c b/enumerator.c index 2c9858cda6d0f5..d41fcfde083f21 100644 --- a/enumerator.c +++ b/enumerator.c @@ -260,7 +260,7 @@ enumerator_ptr(VALUE obj) struct enumerator *ptr; TypedData_Get_Struct(obj, struct enumerator, &enumerator_data_type, ptr); - if (!ptr || ptr->obj == Qundef) { + if (!ptr || UNDEF_P(ptr->obj)) { rb_raise(rb_eArgError, "uninitialized enumerator"); } return ptr; @@ -735,7 +735,7 @@ next_ii(RB_BLOCK_CALL_FUNC_ARGLIST(i, obj)) VALUE feedvalue = Qnil; VALUE args = rb_ary_new4(argc, argv); rb_fiber_yield(1, &args); - if (e->feedvalue != Qundef) { + if (!UNDEF_P(e->feedvalue)) { feedvalue = e->feedvalue; e->feedvalue = Qundef; } @@ -840,7 +840,7 @@ enumerator_next_values(VALUE obj) struct enumerator *e = enumerator_ptr(obj); VALUE vs; - if (e->lookahead != Qundef) { + if (!UNDEF_P(e->lookahead)) { vs = e->lookahead; e->lookahead = Qundef; return vs; @@ -901,7 +901,7 @@ enumerator_peek_values(VALUE obj) { struct enumerator *e = enumerator_ptr(obj); - if (e->lookahead == Qundef) { + if (UNDEF_P(e->lookahead)) { e->lookahead = get_next_values(obj, e); } return e->lookahead; @@ -1025,7 +1025,7 @@ enumerator_feed(VALUE obj, VALUE v) { struct enumerator *e = enumerator_ptr(obj); - if (e->feedvalue != Qundef) { + if (!UNDEF_P(e->feedvalue)) { rb_raise(rb_eTypeError, "feed value already set"); } e->feedvalue = v; @@ -1070,7 +1070,7 @@ inspect_enumerator(VALUE obj, VALUE dummy, int recur) cname = rb_obj_class(obj); - if (!e || e->obj == Qundef) { + if (!e || UNDEF_P(e->obj)) { return rb_sprintf("#<%"PRIsVALUE": uninitialized>", rb_class_path(cname)); } @@ -1239,7 +1239,7 @@ enumerator_size(VALUE obj) argv = RARRAY_CONST_PTR(e->args); } size = rb_check_funcall_kw(e->size, id_call, argc, argv, e->kw_splat); - if (size != Qundef) return size; + if (!UNDEF_P(size)) return size; return e->size; } @@ -1285,7 +1285,7 @@ yielder_ptr(VALUE obj) struct yielder *ptr; TypedData_Get_Struct(obj, struct yielder, &yielder_data_type, ptr); - if (!ptr || ptr->proc == Qundef) { + if (!ptr || UNDEF_P(ptr->proc)) { rb_raise(rb_eArgError, "uninitialized yielder"); } return ptr; @@ -1425,7 +1425,7 @@ generator_ptr(VALUE obj) struct generator *ptr; TypedData_Get_Struct(obj, struct generator, &generator_data_type, ptr); - if (!ptr || ptr->proc == Qundef) { + if (!ptr || UNDEF_P(ptr->proc)) { rb_raise(rb_eArgError, "uninitialized generator"); } return ptr; @@ -1529,7 +1529,7 @@ static VALUE enum_size(VALUE self) { VALUE r = rb_check_funcall(self, id_size, 0, 0); - return (r == Qundef) ? Qnil : r; + return UNDEF_P(r) ? Qnil : r; } static VALUE @@ -1562,7 +1562,7 @@ lazy_init_iterator(RB_BLOCK_CALL_FUNC_ARGLIST(val, m)) result = rb_yield_values2(len, nargv); ALLOCV_END(args); } - if (result == Qundef) rb_iter_break(); + if (UNDEF_P(result)) rb_iter_break(); return Qnil; } @@ -2923,7 +2923,7 @@ producer_ptr(VALUE obj) struct producer *ptr; TypedData_Get_Struct(obj, struct producer, &producer_data_type, ptr); - if (!ptr || ptr->proc == Qundef) { + if (!ptr || UNDEF_P(ptr->proc)) { rb_raise(rb_eArgError, "uninitialized producer"); } return ptr; @@ -2978,7 +2978,7 @@ producer_each_i(VALUE obj) init = ptr->init; proc = ptr->proc; - if (init == Qundef) { + if (UNDEF_P(init)) { curr = Qnil; } else { @@ -3109,7 +3109,7 @@ enum_chain_ptr(VALUE obj) struct enum_chain *ptr; TypedData_Get_Struct(obj, struct enum_chain, &enum_chain_data_type, ptr); - if (!ptr || ptr->enums == Qundef) { + if (!ptr || UNDEF_P(ptr->enums)) { rb_raise(rb_eArgError, "uninitialized chain"); } return ptr; @@ -3302,7 +3302,7 @@ inspect_enum_chain(VALUE obj, VALUE dummy, int recur) TypedData_Get_Struct(obj, struct enum_chain, &enum_chain_data_type, ptr); - if (!ptr || ptr->enums == Qundef) { + if (!ptr || UNDEF_P(ptr->enums)) { return rb_sprintf("#<%"PRIsVALUE": uninitialized>", rb_class_path(klass)); } @@ -3431,7 +3431,7 @@ enum_product_ptr(VALUE obj) struct enum_product *ptr; TypedData_Get_Struct(obj, struct enum_product, &enum_product_data_type, ptr); - if (!ptr || ptr->enums == Qundef) { + if (!ptr || UNDEF_P(ptr->enums)) { rb_raise(rb_eArgError, "uninitialized product"); } return ptr; @@ -3642,7 +3642,7 @@ inspect_enum_product(VALUE obj, VALUE dummy, int recur) TypedData_Get_Struct(obj, struct enum_product, &enum_product_data_type, ptr); - if (!ptr || ptr->enums == Qundef) { + if (!ptr || UNDEF_P(ptr->enums)) { return rb_sprintf("#<%"PRIsVALUE": uninitialized>", rb_class_path(klass)); } diff --git a/error.c b/error.c index 67e81d08a0f193..0ff4b8d6d8e082 100644 --- a/error.c +++ b/error.c @@ -1005,7 +1005,7 @@ rb_check_type(VALUE x, int t) { int xt; - if (RB_UNLIKELY(x == Qundef)) { + if (RB_UNLIKELY(UNDEF_P(x))) { rb_bug(UNDEF_LEAKED); } @@ -1026,7 +1026,7 @@ rb_check_type(VALUE x, int t) void rb_unexpected_type(VALUE x, int t) { - if (RB_UNLIKELY(x == Qundef)) { + if (RB_UNLIKELY(UNDEF_P(x))) { rb_bug(UNDEF_LEAKED); } @@ -1228,7 +1228,7 @@ VALUE rb_get_message(VALUE exc) { VALUE e = rb_check_funcall(exc, id_message, 0, 0); - if (e == Qundef) return Qnil; + if (UNDEF_P(e)) return Qnil; if (!RB_TYPE_P(e, T_STRING)) e = rb_check_string_type(e); return e; } @@ -1243,7 +1243,7 @@ rb_get_detailed_message(VALUE exc, VALUE opt) else { e = rb_check_funcall_kw(exc, id_detailed_message, 1, &opt, 1); } - if (e == Qundef) return Qnil; + if (UNDEF_P(e)) return Qnil; if (!RB_TYPE_P(e, T_STRING)) e = rb_check_string_type(e); return e; } @@ -1635,15 +1635,15 @@ exc_equal(VALUE exc, VALUE obj) int state; obj = rb_protect(try_convert_to_exception, obj, &state); - if (state || obj == Qundef) { + if (state || UNDEF_P(obj)) { rb_set_errinfo(Qnil); return Qfalse; } if (rb_obj_class(exc) != rb_obj_class(obj)) return Qfalse; mesg = rb_check_funcall(obj, id_message, 0, 0); - if (mesg == Qundef) return Qfalse; + if (UNDEF_P(mesg)) return Qfalse; backtrace = rb_check_funcall(obj, id_backtrace, 0, 0); - if (backtrace == Qundef) return Qfalse; + if (UNDEF_P(backtrace)) return Qfalse; } else { mesg = rb_attr_get(obj, id_mesg); @@ -1746,7 +1746,7 @@ exit_success_p(VALUE exc) static VALUE err_init_recv(VALUE exc, VALUE recv) { - if (recv != Qundef) rb_ivar_set(exc, id_recv, recv); + if (!UNDEF_P(recv)) rb_ivar_set(exc, id_recv, recv); return exc; } @@ -2090,7 +2090,7 @@ name_err_mesg_to_str(VALUE obj) break; default: d = rb_protect(name_err_mesg_receiver_name, obj, &state); - if (state || d == Qundef || NIL_P(d)) + if (state || UNDEF_P(d) || NIL_P(d)) d = rb_protect(rb_inspect, obj, &state); if (state) { rb_set_errinfo(Qnil); @@ -2145,7 +2145,7 @@ name_err_receiver(VALUE self) VALUE *ptr, recv, mesg; recv = rb_ivar_lookup(self, id_recv, Qundef); - if (recv != Qundef) return recv; + if (!UNDEF_P(recv)) return recv; mesg = rb_attr_get(self, id_mesg); if (!rb_typeddata_is_kind_of(mesg, &name_err_mesg_data_type)) { @@ -2203,7 +2203,7 @@ key_err_receiver(VALUE self) VALUE recv; recv = rb_ivar_lookup(self, id_receiver, Qundef); - if (recv != Qundef) return recv; + if (!UNDEF_P(recv)) return recv; rb_raise(rb_eArgError, "no receiver is available"); } @@ -2220,7 +2220,7 @@ key_err_key(VALUE self) VALUE key; key = rb_ivar_lookup(self, id_key, Qundef); - if (key != Qundef) return key; + if (!UNDEF_P(key)) return key; rb_raise(rb_eArgError, "no key is available"); } @@ -2258,7 +2258,7 @@ key_err_initialize(int argc, VALUE *argv, VALUE self) keywords[1] = id_key; rb_get_kwargs(options, keywords, 0, numberof(values), values); for (i = 0; i < numberof(values); ++i) { - if (values[i] != Qundef) { + if (!UNDEF_P(values[i])) { rb_ivar_set(self, keywords[i], values[i]); } } @@ -2280,7 +2280,7 @@ no_matching_pattern_key_err_matchee(VALUE self) VALUE matchee; matchee = rb_ivar_lookup(self, id_matchee, Qundef); - if (matchee != Qundef) return matchee; + if (!UNDEF_P(matchee)) return matchee; rb_raise(rb_eArgError, "no matchee is available"); } @@ -2297,7 +2297,7 @@ no_matching_pattern_key_err_key(VALUE self) VALUE key; key = rb_ivar_lookup(self, id_key, Qundef); - if (key != Qundef) return key; + if (!UNDEF_P(key)) return key; rb_raise(rb_eArgError, "no key is available"); } @@ -2324,7 +2324,7 @@ no_matching_pattern_key_err_initialize(int argc, VALUE *argv, VALUE self) keywords[1] = id_key; rb_get_kwargs(options, keywords, 0, numberof(values), values); for (i = 0; i < numberof(values); ++i) { - if (values[i] != Qundef) { + if (!UNDEF_P(values[i])) { rb_ivar_set(self, keywords[i], values[i]); } } diff --git a/eval.c b/eval.c index 826ae1456e5826..c95c3fb9edaf5e 100644 --- a/eval.c +++ b/eval.c @@ -514,7 +514,7 @@ exc_setup_message(const rb_execution_context_t *ec, VALUE mesg, VALUE *cause) nocause = 0; nocircular = 1; } - if (*cause == Qundef) { + if (UNDEF_P(*cause)) { if (nocause) { *cause = Qnil; nocircular = 1; @@ -530,7 +530,7 @@ exc_setup_message(const rb_execution_context_t *ec, VALUE mesg, VALUE *cause) rb_raise(rb_eTypeError, "exception object expected"); } - if (!nocircular && !NIL_P(*cause) && *cause != Qundef && *cause != mesg) { + if (!nocircular && !NIL_P(*cause) && !UNDEF_P(*cause) && *cause != mesg) { VALUE c = *cause; while (!NIL_P(c = rb_attr_get(c, id_cause))) { if (c == mesg) { @@ -549,18 +549,18 @@ setup_exception(rb_execution_context_t *ec, int tag, volatile VALUE mesg, VALUE const char *file = rb_source_location_cstr(&line); const char *const volatile file0 = file; - if ((file && !NIL_P(mesg)) || (cause != Qundef)) { + if ((file && !NIL_P(mesg)) || !UNDEF_P(cause)) { volatile int state = 0; EC_PUSH_TAG(ec); if (EC_EXEC_TAG() == TAG_NONE && !(state = rb_ec_set_raised(ec))) { VALUE bt = rb_get_backtrace(mesg); - if (!NIL_P(bt) || cause == Qundef) { + if (!NIL_P(bt) || UNDEF_P(cause)) { if (OBJ_FROZEN(mesg)) { mesg = rb_obj_dup(mesg); } } - if (cause != Qundef && !THROW_DATA_P(cause)) { + if (!UNDEF_P(cause) && !THROW_DATA_P(cause)) { exc_setup_cause(mesg, cause); } if (NIL_P(bt)) { @@ -633,7 +633,7 @@ setup_exception(rb_execution_context_t *ec, int tag, volatile VALUE mesg, VALUE void rb_ec_setup_exception(const rb_execution_context_t *ec, VALUE mesg, VALUE cause) { - if (cause == Qundef) { + if (UNDEF_P(cause)) { cause = get_ec_errinfo(ec); } if (cause != mesg) { @@ -728,7 +728,7 @@ rb_f_raise(int argc, VALUE *argv) argc = extract_raise_opts(argc, argv, opts); if (argc == 0) { - if (*cause != Qundef) { + if (!UNDEF_P(*cause)) { rb_raise(rb_eArgError, "only cause is given with no arguments"); } err = get_errinfo(); @@ -804,7 +804,7 @@ make_exception(int argc, const VALUE *argv, int isstr) if (NIL_P(mesg)) { mesg = rb_check_funcall(argv[0], idException, argc != 1, &argv[1]); } - if (mesg == Qundef) { + if (UNDEF_P(mesg)) { rb_raise(rb_eTypeError, "exception class/object expected"); } if (!rb_obj_is_kind_of(mesg, rb_eException)) { diff --git a/eval_error.c b/eval_error.c index 6582b805aa07dd..dfb3e6b6762e5d 100644 --- a/eval_error.c +++ b/eval_error.c @@ -306,7 +306,7 @@ rb_error_write(VALUE errinfo, VALUE emesg, VALUE errat, VALUE str, VALUE opt, VA if (NIL_P(errinfo)) return; - if (errat == Qundef) { + if (UNDEF_P(errat)) { errat = Qnil; } eclass = CLASS_OF(errinfo); @@ -358,7 +358,7 @@ rb_ec_error_print(rb_execution_context_t * volatile ec, volatile VALUE errinfo) if (EC_EXEC_TAG() == TAG_NONE) { errat = rb_get_backtrace(errinfo); } - if (emesg == Qundef) { + if (UNDEF_P(emesg)) { emesg = Qnil; emesg = rb_get_detailed_message(errinfo, opt); } diff --git a/gc.c b/gc.c index 8b8f0c11f198da..5a5ec869ca0e56 100644 --- a/gc.c +++ b/gc.c @@ -4307,7 +4307,7 @@ run_single_final(VALUE cmd, VALUE objid) static void warn_exception_in_finalizer(rb_execution_context_t *ec, VALUE final) { - if (final != Qundef && !NIL_P(ruby_verbose)) { + if (!UNDEF_P(final) && !NIL_P(ruby_verbose)) { VALUE errinfo = ec->errinfo; rb_warn("Exception in finalizer %+"PRIsVALUE, final); rb_ec_error_print(ec, errinfo); @@ -4673,7 +4673,7 @@ id2ref(VALUE objid) } } - if ((orig = id2ref_obj_tbl(objspace, objid)) != Qundef && + if (!UNDEF_P(orig = id2ref_obj_tbl(objspace, objid)) && is_live_object(objspace, orig)) { if (!rb_multi_ractor_p() || rb_ractor_shareable_p(orig)) { @@ -7379,7 +7379,7 @@ gc_mark_stacked_objects(rb_objspace_t *objspace, int incremental, size_t count) #endif while (pop_mark_stack(mstack, &obj)) { - if (obj == Qundef) continue; /* skip */ + if (UNDEF_P(obj)) continue; /* skip */ if (RGENGC_CHECK_MODE && !RVALUE_MARKED(obj)) { rb_bug("gc_mark_stacked_objects: %s is not marked.", obj_info(obj)); @@ -12790,7 +12790,7 @@ wmap_finalize(RB_BLOCK_CALL_FUNC_ARGLIST(objid, self)) TypedData_Get_Struct(self, struct weakmap, &weakmap_type, w); /* Get reference from object id. */ - if ((obj = id2ref_obj_tbl(&rb_objspace, objid)) == Qundef) { + if (UNDEF_P(obj = id2ref_obj_tbl(&rb_objspace, objid))) { rb_bug("wmap_finalize: objid is not found."); } @@ -13081,14 +13081,14 @@ static VALUE wmap_aref(VALUE self, VALUE key) { VALUE obj = wmap_lookup(self, key); - return obj != Qundef ? obj : Qnil; + return !UNDEF_P(obj) ? obj : Qnil; } /* Returns +true+ if +key+ is registered */ static VALUE wmap_has_key(VALUE self, VALUE key) { - return RBOOL(wmap_lookup(self, key) != Qundef); + return RBOOL(!UNDEF_P(wmap_lookup(self, key))); } /* Returns the number of referenced objects */ diff --git a/hash.c b/hash.c index 876d8b9efc70c0..a577e7798584d6 100644 --- a/hash.c +++ b/hash.c @@ -111,7 +111,7 @@ rb_any_cmp(VALUE a, VALUE b) RB_TYPE_P(b, T_STRING) && RBASIC(b)->klass == rb_cString) { return rb_str_hash_cmp(a, b); } - if (a == Qundef || b == Qundef) return -1; + if (UNDEF_P(a) || UNDEF_P(b)) return -1; if (SYMBOL_P(a) && SYMBOL_P(b)) { return a != b; } @@ -195,7 +195,7 @@ obj_any_hash(VALUE obj) { VALUE hval = rb_check_funcall_basic_kw(obj, id_hash, rb_mKernel, 0, 0, 0); - if (hval == Qundef) { + if (UNDEF_P(hval)) { hval = rb_exec_recursive_outer_mid(hash_recursive, obj, 0, id_hash); } @@ -437,7 +437,7 @@ ar_cleared_entry(VALUE hash, unsigned int index) * so you need to check key == Qundef */ ar_table_pair *pair = RHASH_AR_TABLE_REF(hash, index); - return pair->key == Qundef; + return UNDEF_P(pair->key); } else { return FALSE; @@ -517,8 +517,8 @@ hash_verify_(VALUE hash, const char *file, int line) ar_table_pair *pair = RHASH_AR_TABLE_REF(hash, i); k = pair->key; v = pair->val; - HASH_ASSERT(k != Qundef); - HASH_ASSERT(v != Qundef); + HASH_ASSERT(!UNDEF_P(k)); + HASH_ASSERT(!UNDEF_P(v)); n++; } } @@ -2076,7 +2076,7 @@ rb_hash_default_value(VALUE hash, VALUE key) if (LIKELY(rb_method_basic_definition_p(CLASS_OF(hash), id_default))) { VALUE ifnone = RHASH_IFNONE(hash); if (!FL_TEST(hash, RHASH_PROC_DEFAULT)) return ifnone; - if (key == Qundef) return Qnil; + if (UNDEF_P(key)) return Qnil; return call_default_proc(ifnone, hash, key); } else { @@ -2402,7 +2402,7 @@ rb_hash_delete(VALUE hash, VALUE key) { VALUE deleted_value = rb_hash_delete_entry(hash, key); - if (deleted_value != Qundef) { /* likely pass */ + if (!UNDEF_P(deleted_value)) { /* likely pass */ return deleted_value; } else { @@ -2445,7 +2445,7 @@ rb_hash_delete_m(VALUE hash, VALUE key) rb_hash_modify_check(hash); val = rb_hash_delete_entry(hash, key); - if (val != Qundef) { + if (!UNDEF_P(val)) { return val; } else { @@ -2502,7 +2502,7 @@ rb_hash_shift(VALUE hash) } else { rb_hash_foreach(hash, shift_i_safe, (VALUE)&var); - if (var.key != Qundef) { + if (!UNDEF_P(var.key)) { rb_hash_delete_entry(hash, var.key); return rb_assoc_new(var.key, var.val); } @@ -2517,7 +2517,7 @@ rb_hash_shift(VALUE hash) } else { rb_hash_foreach(hash, shift_i_safe, (VALUE)&var); - if (var.key != Qundef) { + if (!UNDEF_P(var.key)) { rb_hash_delete_entry(hash, var.key); return rb_assoc_new(var.key, var.val); } @@ -2658,7 +2658,7 @@ rb_hash_slice(int argc, VALUE *argv, VALUE hash) for (i = 0; i < argc; i++) { key = argv[i]; value = rb_hash_lookup2(hash, key, Qundef); - if (value != Qundef) + if (!UNDEF_P(value)) rb_hash_aset(result, key, value); } @@ -3181,7 +3181,7 @@ transform_keys_hash_i(VALUE key, VALUE value, VALUE transarg) struct transform_keys_args *p = (void *)transarg; VALUE trans = p->trans, result = p->result; VALUE new_key = rb_hash_lookup2(trans, key, Qundef); - if (new_key == Qundef) { + if (UNDEF_P(new_key)) { if (p->block_given) new_key = rb_yield(key); else @@ -3302,7 +3302,7 @@ rb_hash_transform_keys_bang(int argc, VALUE *argv, VALUE hash) if (!trans) { new_key = rb_yield(key); } - else if ((new_key = rb_hash_lookup2(trans, key, Qundef)) != Qundef) { + else if (!UNDEF_P(new_key = rb_hash_lookup2(trans, key, Qundef))) { /* use the transformed key */ } else if (block_given) { @@ -4195,7 +4195,7 @@ rb_hash_assoc(VALUE hash, VALUE key) ensure_arg.hash = hash; ensure_arg.orighash = orighash; value = rb_ensure(lookup2_call, (VALUE)&args, reset_hash_type, (VALUE)&ensure_arg); - if (value != Qundef) return rb_assoc_new(key, value); + if (!UNDEF_P(value)) return rb_assoc_new(key, value); } args[0] = key; @@ -4608,7 +4608,7 @@ hash_le_i(VALUE key, VALUE value, VALUE arg) { VALUE *args = (VALUE *)arg; VALUE v = rb_hash_lookup2(args[0], key, Qundef); - if (v != Qundef && rb_equal(value, v)) return ST_CONTINUE; + if (!UNDEF_P(v) && rb_equal(value, v)) return ST_CONTINUE; args[1] = Qfalse; return ST_STOP; } diff --git a/io.c b/io.c index 63a96bf2b80a68..8787c4f804fac5 100644 --- a/io.c +++ b/io.c @@ -1255,7 +1255,7 @@ rb_io_read_memory(rb_io_t *fptr, void *buf, size_t count) if (scheduler != Qnil) { VALUE result = rb_fiber_scheduler_io_read_memory(scheduler, fptr->self, buf, count, 0); - if (result != Qundef) { + if (!UNDEF_P(result)) { return rb_fiber_scheduler_io_result_apply(result); } } @@ -1288,7 +1288,7 @@ rb_io_write_memory(rb_io_t *fptr, const void *buf, size_t count) if (scheduler != Qnil) { VALUE result = rb_fiber_scheduler_io_write_memory(scheduler, fptr->self, buf, count, 0); - if (result != Qundef) { + if (!UNDEF_P(result)) { return rb_fiber_scheduler_io_result_apply(result); } } @@ -1323,7 +1323,7 @@ rb_writev_internal(rb_io_t *fptr, const struct iovec *iov, int iovcnt) for (int i = 0; i < iovcnt; i += 1) { VALUE result = rb_fiber_scheduler_io_write_memory(scheduler, fptr->self, iov[i].iov_base, iov[i].iov_len, 0); - if (result != Qundef) { + if (!UNDEF_P(result)) { return rb_fiber_scheduler_io_result_apply(result); } } @@ -1424,7 +1424,7 @@ rb_io_wait(VALUE io, VALUE events, VALUE timeout) struct timeval tv_storage; struct timeval *tv = NULL; - if (timeout == Qnil || timeout == Qundef) { + if (timeout == Qnil || UNDEF_P(timeout)) { timeout = fptr->timeout; } @@ -3352,7 +3352,7 @@ io_read_memory_call(VALUE arg) if (scheduler != Qnil) { VALUE result = rb_fiber_scheduler_io_read_memory(scheduler, iis->fptr->self, iis->buf, iis->capa, 0); - if (result != Qundef) { + if (!UNDEF_P(result)) { // This is actually returned as a pseudo-VALUE and later cast to a long: return (VALUE)rb_fiber_scheduler_io_result_apply(result); } @@ -3972,7 +3972,7 @@ extract_getline_opts(VALUE opts, struct getline_arg *args) kwds[0] = rb_intern_const("chomp"); } rb_get_kwargs(opts, kwds, 0, -2, &vchomp); - chomp = (vchomp != Qundef) && RTEST(vchomp); + chomp = (!UNDEF_P(vchomp)) && RTEST(vchomp); } args->chomp = chomp; } @@ -5445,7 +5445,7 @@ fptr_finalize_flush(rb_io_t *fptr, int noraise, int keepgvl, // VALUE scheduler = rb_fiber_scheduler_current(); // if (scheduler != Qnil) { // VALUE result = rb_fiber_scheduler_io_close(scheduler, fptr->self); - // if (result != Qundef) done = 1; + // if (!UNDEF_P(result)) done = 1; // } // } @@ -5704,7 +5704,7 @@ static VALUE io_close(VALUE io) { VALUE closed = rb_check_funcall(io, rb_intern("closed?"), 0, 0); - if (closed != Qundef && RTEST(closed)) return io; + if (!UNDEF_P(closed) && RTEST(closed)) return io; rb_rescue2(io_call_close, io, ignore_closed_stream, io, rb_eIOError, (VALUE)0); return io; @@ -6622,21 +6622,21 @@ rb_io_extract_encoding_option(VALUE opt, rb_encoding **enc_p, rb_encoding **enc2 v = rb_hash_lookup2(opt, sym_extenc, Qundef); if (v != Qnil) extenc = v; v = rb_hash_lookup2(opt, sym_intenc, Qundef); - if (v != Qundef) intenc = v; + if (!UNDEF_P(v)) intenc = v; } - if ((extenc != Qundef || intenc != Qundef) && !NIL_P(encoding)) { + if ((!UNDEF_P(extenc) || !UNDEF_P(intenc)) && !NIL_P(encoding)) { if (!NIL_P(ruby_verbose)) { int idx = rb_to_encoding_index(encoding); if (idx >= 0) encoding = rb_enc_from_encoding(rb_enc_from_index(idx)); rb_warn("Ignoring encoding parameter '%"PRIsVALUE"': %s_encoding is used", - encoding, extenc == Qundef ? "internal" : "external"); + encoding, UNDEF_P(extenc) ? "internal" : "external"); } encoding = Qnil; } - if (extenc != Qundef && !NIL_P(extenc)) { + if (!UNDEF_P(extenc) && !NIL_P(extenc)) { extencoding = rb_to_encoding(extenc); } - if (intenc != Qundef) { + if (!UNDEF_P(intenc)) { if (NIL_P(intenc)) { /* internal_encoding: nil => no transcoding */ intencoding = (rb_encoding *)Qnil; @@ -6669,7 +6669,7 @@ rb_io_extract_encoding_option(VALUE opt, rb_encoding **enc_p, rb_encoding **enc2 rb_io_ext_int_to_encs(rb_to_encoding(encoding), NULL, enc_p, enc2_p, 0); } } - else if (extenc != Qundef || intenc != Qundef) { + else if (!UNDEF_P(extenc) || !UNDEF_P(intenc)) { extracted = 1; rb_io_ext_int_to_encs(extencoding, intencoding, enc_p, enc2_p, 0); } @@ -9724,7 +9724,7 @@ io_wait(int argc, VALUE *argv, VALUE io) if (RB_SYMBOL_P(argv[i])) { events |= wait_mode_sym(argv[i]); } - else if (timeout == Qundef) { + else if (UNDEF_P(timeout)) { rb_time_interval(timeout = argv[i]); } else { @@ -9732,7 +9732,7 @@ io_wait(int argc, VALUE *argv, VALUE io) } } - if (timeout == Qundef) timeout = Qnil; + if (UNDEF_P(timeout)) timeout = Qnil; if (events == 0) { events = RUBY_IO_READABLE; @@ -10918,7 +10918,7 @@ rb_f_select(int argc, VALUE *argv, VALUE obj) if (scheduler != Qnil) { // It's optionally supported. VALUE result = rb_fiber_scheduler_io_selectv(scheduler, argc, argv); - if (result != Qundef) return result; + if (!UNDEF_P(result)) return result; } VALUE timeout; @@ -14042,7 +14042,7 @@ static void argf_block_call(ID mid, int argc, VALUE *argv, VALUE argf) { VALUE ret = ARGF_block_call(mid, argc, argv, argf_block_call_i, argf); - if (ret != Qundef) ARGF.next_p = 1; + if (!UNDEF_P(ret)) ARGF.next_p = 1; } static VALUE @@ -14058,7 +14058,7 @@ static void argf_block_call_line(ID mid, int argc, VALUE *argv, VALUE argf) { VALUE ret = ARGF_block_call(mid, argc, argv, argf_block_call_line_i, argf); - if (ret != Qundef) ARGF.next_p = 1; + if (!UNDEF_P(ret)) ARGF.next_p = 1; } /* diff --git a/io_buffer.c b/io_buffer.c index cbf51250c4b22d..dc9d613524d5ea 100644 --- a/io_buffer.c +++ b/io_buffer.c @@ -2384,7 +2384,7 @@ rb_io_buffer_read(VALUE self, VALUE io, size_t length, size_t offset) if (scheduler != Qnil) { VALUE result = rb_fiber_scheduler_io_read(scheduler, io, self, SIZET2NUM(length), SIZET2NUM(offset)); - if (result != Qundef) { + if (!UNDEF_P(result)) { return result; } } @@ -2501,7 +2501,7 @@ rb_io_buffer_pread(VALUE self, VALUE io, rb_off_t from, size_t length, size_t of if (scheduler != Qnil) { VALUE result = rb_fiber_scheduler_io_pread(scheduler, io, OFFT2NUM(from), self, SIZET2NUM(length), SIZET2NUM(offset)); - if (result != Qundef) { + if (!UNDEF_P(result)) { return result; } } @@ -2574,7 +2574,7 @@ rb_io_buffer_write(VALUE self, VALUE io, size_t length, size_t offset) if (scheduler != Qnil) { VALUE result = rb_fiber_scheduler_io_write(scheduler, io, self, SIZET2NUM(length), SIZET2NUM(offset)); - if (result != Qundef) { + if (!UNDEF_P(result)) { return result; } } @@ -2668,7 +2668,7 @@ rb_io_buffer_pwrite(VALUE self, VALUE io, rb_off_t from, size_t length, size_t o if (scheduler != Qnil) { VALUE result = rb_fiber_scheduler_io_pwrite(scheduler, io, OFFT2NUM(from), self, SIZET2NUM(length), SIZET2NUM(offset)); - if (result != Qundef) { + if (!UNDEF_P(result)) { return result; } } diff --git a/iseq.c b/iseq.c index 1d0c96dba17d59..a2e79cd55badcf 100644 --- a/iseq.c +++ b/iseq.c @@ -331,7 +331,7 @@ rb_iseq_update_references(rb_iseq_t *iseq) for (j = 0; i < body->param.keyword->num; i++, j++) { VALUE obj = body->param.keyword->default_values[j]; - if (obj != Qundef) { + if (!UNDEF_P(obj)) { body->param.keyword->default_values[j] = rb_gc_location(obj); } } @@ -2916,7 +2916,7 @@ iseq_data_to_ary(const rb_iseq_t *iseq) } for (j=0; inum; i++, j++) { VALUE key = rb_ary_new_from_args(1, ID2SYM(keyword->table[i])); - if (keyword->default_values[j] != Qundef) { + if (!UNDEF_P(keyword->default_values[j])) { rb_ary_push(key, keyword->default_values[j]); } rb_ary_push(keywords, key); diff --git a/marshal.c b/marshal.c index d956260d96f0a3..e1612303fe6bd4 100644 --- a/marshal.c +++ b/marshal.c @@ -743,7 +743,7 @@ w_ivar(st_index_t num, VALUE ivobj, VALUE encname, struct dump_call_arg *arg) w_object(Qtrue, arg->arg, limit); num--; } - if (ivobj != Qundef && num) { + if (!UNDEF_P(ivobj) && num) { w_ivar_each(ivobj, num, arg); } } @@ -930,7 +930,7 @@ w_object(VALUE obj, struct dump_arg *arg, int limit) arg->compat_tbl = rb_init_identtable(); } st_insert(arg->compat_tbl, (st_data_t)obj, (st_data_t)real_obj); - if (obj != real_obj && ivobj == Qundef) hasiv = 0; + if (obj != real_obj && UNDEF_P(ivobj)) hasiv = 0; } } if (hasiv) w_byte(TYPE_IVAR, arg); @@ -2251,7 +2251,7 @@ r_object_for(struct load_arg *arg, bool partial, int *ivp, VALUE extmod, int typ break; } - if (v == Qundef) { + if (UNDEF_P(v)) { rb_raise(rb_eArgError, "dump format error (bad link)"); } diff --git a/numeric.c b/numeric.c index 8607d697942a3a..b191b25d79e041 100644 --- a/numeric.c +++ b/numeric.c @@ -449,7 +449,7 @@ static int do_coerce(VALUE *x, VALUE *y, int err) { VALUE ary = rb_check_funcall(*y, id_coerce, 1, x); - if (ary == Qundef) { + if (UNDEF_P(ary)) { if (err) { coerce_failed(*x, *y); } @@ -1713,7 +1713,7 @@ flo_cmp(VALUE x, VALUE y) b = RFLOAT_VALUE(y); } else { - if (isinf(a) && (i = rb_check_funcall(y, rb_intern("infinite?"), 0, 0)) != Qundef) { + if (isinf(a) && !UNDEF_P(i = rb_check_funcall(y, rb_intern("infinite?"), 0, 0))) { if (RTEST(i)) { int j = rb_cmpint(i, x, y); j = (a > 0.0) ? (j > 0 ? 0 : +1) : (j < 0 ? 0 : -1); @@ -2858,7 +2858,7 @@ num_step_negative_p(VALUE num) } r = rb_check_funcall(num, '>', 1, &zero); - if (r == Qundef) { + if (UNDEF_P(r)) { coerce_failed(num, INT2FIX(0)); } return !RTEST(r); @@ -2876,11 +2876,11 @@ num_step_extract_args(int argc, const VALUE *argv, VALUE *to, VALUE *step, VALUE keys[0] = id_to; keys[1] = id_by; rb_get_kwargs(hash, keys, 0, 2, values); - if (values[0] != Qundef) { + if (!UNDEF_P(values[0])) { if (argc > 0) rb_raise(rb_eArgError, "to is given twice"); *to = values[0]; } - if (values[1] != Qundef) { + if (!UNDEF_P(values[1])) { if (argc > 1) rb_raise(rb_eArgError, "step is given twice"); *by = values[1]; } @@ -2893,7 +2893,7 @@ static int num_step_check_fix_args(int argc, VALUE *to, VALUE *step, VALUE by, int fix_nil, int allow_zero_step) { int desc; - if (by != Qundef) { + if (!UNDEF_P(by)) { *step = by; } else { @@ -3041,7 +3041,7 @@ num_step(int argc, VALUE *argv, VALUE from) VALUE by = Qundef; num_step_extract_args(argc, argv, &to, &step, &by); - if (by != Qundef) { + if (!UNDEF_P(by)) { step = by; } if (NIL_P(step)) { @@ -4930,7 +4930,7 @@ rb_num_coerce_bit(VALUE x, VALUE y, ID func) do_coerce(&args[1], &args[2], TRUE); ret = rb_exec_recursive_paired(num_funcall_bit_1, args[2], args[1], (VALUE)args); - if (ret == Qundef) { + if (UNDEF_P(ret)) { /* show the original object, not coerced object */ coerce_failed(x, y); } diff --git a/object.c b/object.c index f0117d1a47d992..7f4404c46217b1 100644 --- a/object.c +++ b/object.c @@ -125,7 +125,7 @@ rb_equal(VALUE obj1, VALUE obj2) if (obj1 == obj2) return Qtrue; result = rb_equal_opt(obj1, obj2); - if (result == Qundef) { + if (UNDEF_P(result)) { result = rb_funcall(obj1, id_eq, 1, obj2); } return RBOOL(RTEST(result)); @@ -138,7 +138,7 @@ rb_eql(VALUE obj1, VALUE obj2) if (obj1 == obj2) return TRUE; result = rb_eql_opt(obj1, obj2); - if (result == Qundef) { + if (UNDEF_P(result)) { result = rb_funcall(obj1, id_eql, 1, obj2); } return RTEST(result); @@ -411,7 +411,7 @@ rb_get_freeze_opt(int argc, VALUE *argv) rb_scan_args(argc, argv, "0:", &opt); if (!NIL_P(opt)) { rb_get_kwargs(opt, keyword_ids, 0, 1, &kwfreeze); - if (kwfreeze != Qundef) + if (!UNDEF_P(kwfreeze)) kwfreeze = obj_freeze_opt(kwfreeze); } return kwfreeze; @@ -2545,7 +2545,7 @@ rb_mod_const_defined(int argc, VALUE *argv, VALUE mod) #if 0 mod = rb_const_search(mod, id, beglen > 0 || !RTEST(recur), RTEST(recur), FALSE); - if (mod == Qundef) return Qfalse; + if (UNDEF_P(mod)) return Qfalse; #else if (!RTEST(recur)) { if (!rb_const_defined_at(mod, id)) @@ -2975,7 +2975,7 @@ static VALUE convert_type_with_id(VALUE val, const char *tname, ID method, int raise, int index) { VALUE r = rb_check_funcall(val, method, 0, 0); - if (r == Qundef) { + if (UNDEF_P(r)) { if (raise) { const char *msg = ((index < 0 ? conv_method_index(rb_id2name(method)) : index) diff --git a/parse.y b/parse.y index 526a25ac3b861d..a69a7bea55f2b9 100644 --- a/parse.y +++ b/parse.y @@ -10848,7 +10848,7 @@ check_literal_when(struct parser_params *p, NODE *arg, const YYLTYPE *loc) if (!arg || !p->case_labels) return; lit = rb_node_case_when_optimizable_literal(arg); - if (lit == Qundef) return; + if (UNDEF_P(lit)) return; if (nd_type_p(arg, NODE_STR)) { RB_OBJ_WRITTEN(p->ast, Qnil, arg->nd_lit = lit); } @@ -11501,7 +11501,7 @@ shareable_literal_constant(struct parser_params *p, enum shareability shareable, } if (RTEST(lit)) { VALUE e = shareable_literal_value(elt); - if (e != Qundef) { + if (!UNDEF_P(e)) { rb_ary_push(lit, e); } else { @@ -11541,7 +11541,7 @@ shareable_literal_constant(struct parser_params *p, enum shareability shareable, if (RTEST(lit)) { VALUE k = shareable_literal_value(key); VALUE v = shareable_literal_value(val); - if (k != Qundef && v != Qundef) { + if (!UNDEF_P(k) && !UNDEF_P(v)) { rb_hash_aset(lit, k, v); } else { @@ -13787,7 +13787,7 @@ ripper_validate_object(VALUE self, VALUE x) if (x == Qfalse) return x; if (x == Qtrue) return x; if (NIL_P(x)) return x; - if (x == Qundef) + if (UNDEF_P(x)) rb_raise(rb_eArgError, "Qundef given"); if (FIXNUM_P(x)) return x; if (SYMBOL_P(x)) return x; @@ -13898,7 +13898,7 @@ static VALUE ripper_get_value(VALUE v) { NODE *nd; - if (v == Qundef) return Qnil; + if (UNDEF_P(v)) return Qnil; if (!RB_TYPE_P(v, T_NODE)) return v; nd = (NODE *)v; if (!nd_type_p(nd, NODE_RIPPER)) return Qnil; @@ -14159,7 +14159,7 @@ static VALUE ripper_assert_Qundef(VALUE self, VALUE obj, VALUE msg) { StringValue(msg); - if (obj == Qundef) { + if (UNDEF_P(obj)) { rb_raise(rb_eArgError, "%"PRIsVALUE, msg); } return Qnil; diff --git a/proc.c b/proc.c index a25786c0157251..71b6f1ef803606 100644 --- a/proc.c +++ b/proc.c @@ -89,7 +89,7 @@ block_mark(const struct rb_block *block) const struct rb_captured_block *captured = &block->as.captured; RUBY_MARK_MOVABLE_UNLESS_NULL(captured->self); RUBY_MARK_MOVABLE_UNLESS_NULL((VALUE)captured->code.val); - if (captured->ep && captured->ep[VM_ENV_DATA_INDEX_ENV] != Qundef /* cfunc_proc_t */) { + if (captured->ep && !UNDEF_P(captured->ep[VM_ENV_DATA_INDEX_ENV]) /* cfunc_proc_t */) { rb_gc_mark(VM_ENV_ENVVAL(captured->ep)); } } @@ -1645,7 +1645,7 @@ respond_to_missing_p(VALUE klass, VALUE obj, VALUE sym, int scope) /* TODO: merge with obj_respond_to() */ ID rmiss = idRespond_to_missing; - if (obj == Qundef) return 0; + if (UNDEF_P(obj)) return 0; if (rb_method_basic_definition_p(klass, rmiss)) return 0; return RTEST(rb_funcall(obj, rmiss, 2, sym, RBOOL(!scope))); } @@ -1746,7 +1746,7 @@ mnew_callable(VALUE klass, VALUE obj, ID id, VALUE mclass, int scope) const rb_method_entry_t *me; VALUE iclass = Qnil; - ASSUME(obj != Qundef); + ASSUME(!UNDEF_P(obj)); me = (rb_method_entry_t *)rb_callable_method_entry_with_refinements(klass, id, &iclass); return mnew_from_me(me, klass, iclass, obj, id, mclass, scope); } @@ -1988,7 +1988,7 @@ rb_method_name_error(VALUE klass, VALUE str) else if (RB_TYPE_P(c, T_MODULE)) { s = MSG(" module"); } - if (s == Qundef) { + if (UNDEF_P(s)) { s = MSG(" class"); } rb_name_err_raise_str(s, c, str); @@ -2493,7 +2493,7 @@ rb_method_call_with_block_kw(int argc, const VALUE *argv, VALUE method, VALUE pa rb_execution_context_t *ec = GET_EC(); TypedData_Get_Struct(method, struct METHOD, &method_data_type, data); - if (data->recv == Qundef) { + if (UNDEF_P(data->recv)) { rb_raise(rb_eTypeError, "can't call unbound method; bind first"); } return call_method_data(ec, data, argc, argv, passed_procval, kw_splat); @@ -3142,7 +3142,7 @@ method_inspect(VALUE method) if (FL_TEST(mklass, FL_SINGLETON)) { VALUE v = rb_ivar_get(mklass, attached); - if (data->recv == Qundef) { + if (UNDEF_P(data->recv)) { rb_str_buf_append(str, rb_inspect(mklass)); } else if (data->recv == v) { diff --git a/process.c b/process.c index d95b717960d097..dabe9320f297fe 100644 --- a/process.c +++ b/process.c @@ -1332,7 +1332,7 @@ rb_process_status_wait(rb_pid_t pid, int flags) if (!(flags & WNOHANG)) { VALUE scheduler = rb_fiber_scheduler_current(); VALUE result = rb_fiber_scheduler_process_wait(scheduler, pid, flags); - if (result != Qundef) return result; + if (!UNDEF_P(result)) return result; } struct waitpid_state waitpid_state; diff --git a/ractor.c b/ractor.c index 3569202e58ee27..3605da74e6ffda 100644 --- a/ractor.c +++ b/ractor.c @@ -728,7 +728,7 @@ ractor_receive(rb_execution_context_t *ec, rb_ractor_t *cr) VM_ASSERT(cr == rb_ec_ractor_ptr(ec)); VALUE v; - while ((v = ractor_try_receive(ec, cr)) == Qundef) { + while (UNDEF_P(v = ractor_try_receive(ec, cr))) { ractor_receive_wait(ec, cr); } @@ -875,7 +875,7 @@ ractor_receive_if(rb_execution_context_t *ec, VALUE crv, VALUE b) } RACTOR_UNLOCK_SELF(cr); - if (v != Qundef) { + if (!UNDEF_P(v)) { struct receive_block_data data = { .cr = cr, .rq = rq, @@ -887,7 +887,7 @@ ractor_receive_if(rb_execution_context_t *ec, VALUE crv, VALUE b) VALUE result = rb_ensure(receive_if_body, (VALUE)&data, receive_if_ensure, (VALUE)&data); - if (result != Qundef) return result; + if (!UNDEF_P(result)) return result; index++; } @@ -1095,7 +1095,7 @@ ractor_select(rb_execution_context_t *ec, const VALUE *rs, const int rs_len, VAL int i; bool interrupted = false; enum rb_ractor_wait_status wait_status = 0; - bool yield_p = (yielded_value != Qundef) ? true : false; + bool yield_p = !UNDEF_P(yielded_value) ? true : false; const int alen = rs_len + (yield_p ? 1 : 0); struct ractor_select_action { @@ -1152,7 +1152,7 @@ ractor_select(rb_execution_context_t *ec, const VALUE *rs, const int rs_len, VAL case ractor_select_action_take: rv = actions[i].v; v = ractor_try_take(ec, RACTOR_PTR(rv)); - if (v != Qundef) { + if (!UNDEF_P(v)) { *ret_r = rv; ret = v; goto cleanup; @@ -1160,7 +1160,7 @@ ractor_select(rb_execution_context_t *ec, const VALUE *rs, const int rs_len, VAL break; case ractor_select_action_receive: v = ractor_try_receive(ec, cr); - if (v != Qundef) { + if (!UNDEF_P(v)) { *ret_r = ID2SYM(rb_intern("receive")); ret = v; goto cleanup; @@ -1324,7 +1324,7 @@ ractor_select(rb_execution_context_t *ec, const VALUE *rs, const int rs_len, VAL goto restart; } - VM_ASSERT(ret != Qundef); + VM_ASSERT(!UNDEF_P(ret)); return ret; } @@ -2289,7 +2289,7 @@ obj_traverse_i(VALUE obj, struct obj_traverse_data *data) rb_ivar_generic_ivtbl_lookup(obj, &ivtbl); for (uint32_t i = 0; i < ivtbl->numiv; i++) { VALUE val = ivtbl->ivptr[i]; - if (val != Qundef && obj_traverse_i(val, data)) return 1; + if (!UNDEF_P(val) && obj_traverse_i(val, data)) return 1; } } @@ -2311,7 +2311,7 @@ obj_traverse_i(VALUE obj, struct obj_traverse_data *data) for (uint32_t i=0; inumiv; i++) { - if (ivtbl->ivptr[i] != Qundef) { + if (!UNDEF_P(ivtbl->ivptr[i])) { CHECK_AND_REPLACE(ivtbl->ivptr[i]); } } @@ -2764,7 +2764,7 @@ obj_traverse_replace_i(VALUE obj, struct obj_traverse_replace_data *data) VALUE *ptr = ROBJECT_IVPTR(obj); for (uint32_t i=0; imain_cache != Qundef) { + if (!UNDEF_P((VALUE)key->main_cache)) { *pret = key->main_cache; return true; } diff --git a/range.c b/range.c index a2c0e218600607..0c3dc51c73b520 100644 --- a/range.c +++ b/range.c @@ -607,7 +607,7 @@ is_integer_p(VALUE v) VALUE is_int; CONST_ID(id_integer_p, "integer?"); is_int = rb_check_funcall(v, id_integer_p, 0, 0); - return RTEST(is_int) && is_int != Qundef; + return RTEST(is_int) && !UNDEF_P(is_int); } static VALUE @@ -1505,11 +1505,11 @@ rb_range_values(VALUE range, VALUE *begp, VALUE *endp, int *exclp) else { VALUE x; b = rb_check_funcall(range, id_beg, 0, 0); - if (b == Qundef) return (int)Qfalse; + if (UNDEF_P(b)) return (int)Qfalse; e = rb_check_funcall(range, id_end, 0, 0); - if (e == Qundef) return (int)Qfalse; + if (UNDEF_P(e)) return (int)Qfalse; x = rb_check_funcall(range, rb_intern("exclude_end?"), 0, 0); - if (x == Qundef) return (int)Qfalse; + if (UNDEF_P(x)) return (int)Qfalse; excl = RTEST(x); } *begp = b; @@ -1646,7 +1646,7 @@ inspect_range(VALUE range, VALUE dummy, int recur) if (NIL_P(RANGE_BEG(range)) || !NIL_P(RANGE_END(range))) { str2 = rb_inspect(RANGE_END(range)); } - if (str2 != Qundef) rb_str_append(str, str2); + if (!UNDEF_P(str2)) rb_str_append(str, str2); return str; } @@ -1724,7 +1724,7 @@ static VALUE range_eqq(VALUE range, VALUE val) { VALUE ret = range_include_internal(range, val, 1); - if (ret != Qundef) return ret; + if (!UNDEF_P(ret)) return ret; return r_cover_p(range, RANGE_BEG(range), RANGE_END(range), val); } @@ -1764,7 +1764,7 @@ static VALUE range_include(VALUE range, VALUE val) { VALUE ret = range_include_internal(range, val, 0); - if (ret != Qundef) return ret; + if (!UNDEF_P(ret)) return ret; return rb_call_super(1, &val); } diff --git a/rational.c b/rational.c index 48a9ab2ed28932..dfe2ad74eb7b9b 100644 --- a/rational.c +++ b/rational.c @@ -2552,7 +2552,7 @@ nurat_convert(VALUE klass, VALUE numv, VALUE denv, int raise) VALUE a1 = numv, a2 = denv; int state; - assert(a1 != Qundef); + assert(!UNDEF_P(a1)); if (NIL_P(a1) || NIL_P(a2)) { if (!raise) return Qnil; @@ -2603,7 +2603,7 @@ nurat_convert(VALUE klass, VALUE numv, VALUE denv, int raise) a2 = string_to_r_strict(a2, raise); if (!raise && NIL_P(a2)) return Qnil; } - else if (a2 != Qundef && !rb_respond_to(a2, idTo_r)) { + else if (!UNDEF_P(a2) && !rb_respond_to(a2, idTo_r)) { VALUE tmp = rb_protect(rb_check_to_int, a2, NULL); rb_set_errinfo(Qnil); if (!NIL_P(tmp)) { @@ -2612,11 +2612,11 @@ nurat_convert(VALUE klass, VALUE numv, VALUE denv, int raise) } if (RB_TYPE_P(a1, T_RATIONAL)) { - if (a2 == Qundef || (k_exact_one_p(a2))) + if (UNDEF_P(a2) || (k_exact_one_p(a2))) return a1; } - if (a2 == Qundef) { + if (UNDEF_P(a2)) { if (!RB_INTEGER_TYPE_P(a1)) { if (!raise) { VALUE result = rb_protect(to_rational, a1, NULL); @@ -2666,7 +2666,7 @@ nurat_convert(VALUE klass, VALUE numv, VALUE denv, int raise) a1 = nurat_int_value(a1); - if (a2 == Qundef) { + if (UNDEF_P(a2)) { a2 = ONE; } else if (!k_integer_p(a2) && !raise) { diff --git a/re.c b/re.c index 1b8314832156a5..15fe10b6af725c 100644 --- a/re.c +++ b/re.c @@ -3832,14 +3832,14 @@ rb_reg_initialize_m(int argc, VALUE *argv, VALUE self) str = RREGEXP_SRC(re); } else { - if (opts != Qundef) { + if (!UNDEF_P(opts)) { int f; if (FIXNUM_P(opts)) flags = FIX2INT(opts); else if ((f = str_to_option(opts)) >= 0) flags = f; else if (!NIL_P(opts) && rb_bool_expected(opts, "ignorecase", FALSE)) flags = ONIG_OPTION_IGNORECASE; } - if (n_flag != Qundef && !NIL_P(n_flag)) { + if (!UNDEF_P(n_flag) && !NIL_P(n_flag)) { char *kcode = StringValuePtr(n_flag); if (kcode[0] == 'n' || kcode[0] == 'N') { enc = rb_ascii8bit_encoding(); diff --git a/scheduler.c b/scheduler.c index 611182741c664b..9f28ae0eb6dffb 100644 --- a/scheduler.c +++ b/scheduler.c @@ -231,10 +231,10 @@ rb_fiber_scheduler_close(VALUE scheduler) // would create an infinite loop. result = rb_check_funcall(scheduler, id_scheduler_close, 0, NULL); - if (result != Qundef) return result; + if (!UNDEF_P(result)) return result; result = rb_check_funcall(scheduler, id_close, 0, NULL); - if (result != Qundef) return result; + if (!UNDEF_P(result)) return result; return Qnil; } diff --git a/signal.c b/signal.c index 874afd28d5b3bc..04db34fc3dd6c3 100644 --- a/signal.c +++ b/signal.c @@ -1129,7 +1129,7 @@ rb_signal_exec(rb_thread_t *th, int sig) break; } } - else if (cmd == Qundef) { + else if (UNDEF_P(cmd)) { rb_threadptr_signal_exit(th); } else { diff --git a/sprintf.c b/sprintf.c index bfe25e1d3c8b05..b26dffec8570df 100644 --- a/sprintf.c +++ b/sprintf.c @@ -97,7 +97,7 @@ sign_bits(int base, const char *p) blen += (l);\ } while (0) -#define GETARG() (nextvalue != Qundef ? nextvalue : \ +#define GETARG() (!UNDEF_P(nextvalue) ? nextvalue : \ GETNEXTARG()) #define GETNEXTARG() ( \ @@ -193,7 +193,7 @@ get_hash(volatile VALUE *hash, int argc, const VALUE *argv) { VALUE tmp; - if (*hash != Qundef) return *hash; + if (!UNDEF_P(*hash)) return *hash; if (argc != 2) { rb_raise(rb_eArgError, "one hash required"); } @@ -336,7 +336,7 @@ rb_str_format(int argc, const VALUE *argv, VALUE fmt) n = 0; GETNUM(n, width); if (*p == '$') { - if (nextvalue != Qundef) { + if (!UNDEF_P(nextvalue)) { rb_raise(rb_eArgError, "value given twice - %d$", n); } nextvalue = GETPOSARG(n); @@ -381,7 +381,7 @@ rb_str_format(int argc, const VALUE *argv, VALUE fmt) len - 2 /* without parenthesis */, enc); if (!NIL_P(sym)) nextvalue = rb_hash_lookup2(hash, sym, Qundef); - if (nextvalue == Qundef) { + if (UNDEF_P(nextvalue)) { if (NIL_P(sym)) { sym = rb_sym_intern(start + 1, len - 2 /* without parenthesis */, diff --git a/string.c b/string.c index 73be76cd7235fb..124658e0630c7d 100644 --- a/string.c +++ b/string.c @@ -495,7 +495,7 @@ register_fstring(VALUE str, bool copy) do { args.fstr = str; st_update(frozen_strings, (st_data_t)str, fstr_update_callback, (st_data_t)&args); - } while (args.fstr == Qundef); + } while (UNDEF_P(args.fstr)); } RB_VM_LOCK_LEAVE(); @@ -1873,10 +1873,10 @@ rb_str_init(int argc, VALUE *argv, VALUE str) rb_get_kwargs(opt, keyword_ids, 0, 2, kwargs); venc = kwargs[0]; vcapa = kwargs[1]; - if (venc != Qundef && !NIL_P(venc)) { + if (!UNDEF_P(venc) && !NIL_P(venc)) { enc = rb_to_encoding(venc); } - if (vcapa != Qundef && !NIL_P(vcapa)) { + if (!UNDEF_P(vcapa) && !NIL_P(vcapa)) { long capa = NUM2LONG(vcapa); long len = 0; int termlen = enc ? rb_enc_mbminlen(enc) : 1; @@ -8922,7 +8922,7 @@ rb_str_enumerate_lines(int argc, VALUE *argv, VALUE str, VALUE ary) keywords[0] = rb_intern_const("chomp"); } rb_get_kwargs(opts, keywords, 0, 1, &chomp); - chomp = (chomp != Qundef && RTEST(chomp)); + chomp = (!UNDEF_P(chomp) && RTEST(chomp)); } if (NIL_P(rs)) { diff --git a/struct.c b/struct.c index da84fa6bcb7b76..10e5209fb989fd 100644 --- a/struct.c +++ b/struct.c @@ -650,7 +650,7 @@ rb_struct_s_def(int argc, VALUE *argv, VALUE klass) keyword_ids[0] = rb_intern("keyword_init"); } rb_get_kwargs(opt, keyword_ids, 0, 1, &keyword_init); - if (keyword_init == Qundef) { + if (UNDEF_P(keyword_init)) { keyword_init = Qnil; } else if (RTEST(keyword_init)) { diff --git a/thread.c b/thread.c index 624c070877bfc7..1b12ec207703ce 100644 --- a/thread.c +++ b/thread.c @@ -681,7 +681,7 @@ thread_start_func_2(rb_thread_t *th, VALUE *stack_start) th->ec->machine.stack_maxsize -= size * sizeof(VALUE); // Ensure that we are not joinable. - VM_ASSERT(th->value == Qundef); + VM_ASSERT(UNDEF_P(th->value)); EC_PUSH_TAG(th->ec); @@ -727,7 +727,7 @@ thread_start_func_2(rb_thread_t *th, VALUE *stack_start) } // The thread is effectively finished and can be joined. - VM_ASSERT(th->value != Qundef); + VM_ASSERT(!UNDEF_P(th->value)); rb_threadptr_join_list_wakeup(th); rb_threadptr_unlock_all_locking_mutexes(th); @@ -1027,7 +1027,7 @@ remove_from_join_list(VALUE arg) static int thread_finished(rb_thread_t *th) { - return th->status == THREAD_KILLED || th->value != Qundef; + return th->status == THREAD_KILLED || !UNDEF_P(th->value); } static VALUE @@ -1219,7 +1219,7 @@ thread_value(VALUE self) { rb_thread_t *th = rb_thread_ptr(self); thread_join(th, Qnil, 0); - if (th->value == Qundef) { + if (UNDEF_P(th->value)) { // If the thread is dead because we forked th->value is still Qundef. return Qnil; } @@ -2349,7 +2349,7 @@ rb_threadptr_execute_interrupts(rb_thread_t *th, int blocking_timing) RUBY_DEBUG_LOG("err:%"PRIdVALUE"\n", err); ret = TRUE; - if (err == Qundef) { + if (UNDEF_P(err)) { /* no error */ } else if (err == eKillSignal /* Thread#kill received */ || @@ -5035,7 +5035,7 @@ recursive_check(VALUE list, VALUE obj, VALUE paired_obj_id) #endif VALUE pair_list = rb_hash_lookup2(list, obj, Qundef); - if (pair_list == Qundef) + if (UNDEF_P(pair_list)) return Qfalse; if (paired_obj_id) { if (!RB_TYPE_P(pair_list, T_HASH)) { @@ -5067,7 +5067,7 @@ recursive_push(VALUE list, VALUE obj, VALUE paired_obj) if (!paired_obj) { rb_hash_aset(list, obj, Qtrue); } - else if ((pair_list = rb_hash_lookup2(list, obj, Qundef)) == Qundef) { + else if (UNDEF_P(pair_list = rb_hash_lookup2(list, obj, Qundef))) { rb_hash_aset(list, obj, paired_obj); } else { @@ -5094,7 +5094,7 @@ recursive_pop(VALUE list, VALUE obj, VALUE paired_obj) { if (paired_obj) { VALUE pair_list = rb_hash_lookup2(list, obj, Qundef); - if (pair_list == Qundef) { + if (UNDEF_P(pair_list)) { return 0; } if (RB_TYPE_P(pair_list, T_HASH)) { diff --git a/time.c b/time.c index fe4ea0014465ca..7d74b56a3be451 100644 --- a/time.c +++ b/time.c @@ -523,7 +523,7 @@ num_exact(VALUE v) return rb_rational_canonicalize(v); default: - if ((tmp = rb_check_funcall(v, idTo_r, 0, NULL)) != Qundef) { + if (!UNDEF_P(tmp = rb_check_funcall(v, idTo_r, 0, NULL))) { /* test to_int method availability to reject non-Numeric * objects such as String, Time, etc which have to_r method. */ if (!rb_respond_to(v, idTo_int)) { @@ -2277,7 +2277,7 @@ zone_set_dst(VALUE zone, struct time_object *tobj, VALUE tm) VALUE dst; CONST_ID(id_dst_p, "dst?"); dst = rb_check_funcall(zone, id_dst_p, 1, &tm); - tobj->vtm.isdst = (dst != Qundef && RTEST(dst)); + tobj->vtm.isdst = (!UNDEF_P(dst) && RTEST(dst)); } static int @@ -2290,7 +2290,7 @@ zone_timelocal(VALUE zone, VALUE time) t = rb_time_unmagnify(tobj->timew); tm = tm_from_time(rb_cTimeTM, time); utc = rb_check_funcall(zone, id_local_to_utc, 1, &tm); - if (utc == Qundef) return 0; + if (UNDEF_P(utc)) return 0; s = extract_time(utc); zone_set_offset(zone, tobj, t, s); @@ -2314,7 +2314,7 @@ zone_localtime(VALUE zone, VALUE time) tm = tm_from_time(rb_cTimeTM, time); local = rb_check_funcall(zone, id_utc_to_local, 1, &tm); - if (local == Qundef) return 0; + if (UNDEF_P(local)) return 0; s = extract_vtm(local, &tobj->vtm, subsecx); tobj->tm_got = 1; @@ -2616,7 +2616,7 @@ time_timespec(VALUE num, int interval) else { i = INT2FIX(1); ary = rb_check_funcall(num, id_divmod, 1, &i); - if (ary != Qundef && !NIL_P(ary = rb_check_array_type(ary))) { + if (!UNDEF_P(ary) && !NIL_P(ary = rb_check_array_type(ary))) { i = rb_ary_entry(ary, 0); f = rb_ary_entry(ary, 1); t.tv_sec = NUM2TIMET(i); @@ -5481,12 +5481,12 @@ rb_time_zone_abbreviation(VALUE zone, VALUE time) tm = tm_from_time(rb_cTimeTM, time); abbr = rb_check_funcall(zone, rb_intern("abbr"), 1, &tm); - if (abbr != Qundef) { + if (!UNDEF_P(abbr)) { goto found; } #ifdef SUPPORT_TZINFO_ZONE_ABBREVIATION abbr = rb_check_funcall(zone, rb_intern("period_for_utc"), 1, &tm); - if (abbr != Qundef) { + if (!UNDEF_P(abbr)) { abbr = rb_funcallv(abbr, rb_intern("abbreviation"), 0, 0); goto found; } @@ -5494,7 +5494,7 @@ rb_time_zone_abbreviation(VALUE zone, VALUE time) strftime_args[0] = rb_fstring_lit("%Z"); strftime_args[1] = tm; abbr = rb_check_funcall(zone, rb_intern("strftime"), 2, strftime_args); - if (abbr != Qundef) { + if (!UNDEF_P(abbr)) { goto found; } abbr = rb_check_funcall_default(zone, idName, 0, 0, Qnil); diff --git a/transcode.c b/transcode.c index e315a8f1ab06b2..f1d871e292e794 100644 --- a/transcode.c +++ b/transcode.c @@ -2352,7 +2352,7 @@ transcode_loop(const unsigned char **in_pos, unsigned char **out_pos, ec->last_error.error_bytes_len, rb_enc_find(ec->last_error.source_encoding)); rep = (*fallback_func)(fallback, rep); - if (rep != Qundef && !NIL_P(rep)) { + if (!UNDEF_P(rep) && !NIL_P(rep)) { StringValue(rep); ret = rb_econv_insert_output(ec, (const unsigned char *)RSTRING_PTR(rep), RSTRING_LEN(rep), rb_enc_name(rb_enc_get(rep))); diff --git a/transient_heap.c b/transient_heap.c index ddf40d104153fc..9dfd980e64b95b 100644 --- a/transient_heap.c +++ b/transient_heap.c @@ -169,7 +169,7 @@ ATTRIBUTE_NO_ADDRESS_SAFETY_ANALYSIS(static void transient_heap_ptr_check(struct static void transient_heap_ptr_check(struct transient_heap *theap, VALUE obj) { - if (obj != Qundef) { + if (!UNDEF_P(obj)) { const void *ptr = transient_heap_ptr(obj, FALSE); TH_ASSERT(ptr == NULL || transient_header_managed_ptr_p(theap, ptr)); } diff --git a/variable.c b/variable.c index 93abdac454752d..daae90396e1fb3 100644 --- a/variable.c +++ b/variable.c @@ -281,7 +281,7 @@ rb_path_to_class(VALUE pathname) goto undefined_class; } c = rb_const_search(c, id, TRUE, FALSE, FALSE); - if (c == Qundef) goto undefined_class; + if (UNDEF_P(c)) goto undefined_class; if (!rb_namespace_p(c)) { rb_raise(rb_eTypeError, "%"PRIsVALUE" does not refer to class/module", pathname); @@ -1108,7 +1108,7 @@ gen_ivtbl_count(const struct gen_ivtbl *ivtbl) size_t n = 0; for (i = 0; i < ivtbl->numiv; i++) { - if (ivtbl->ivptr[i] != Qundef) { + if (!UNDEF_P(ivtbl->ivptr[i])) { n++; } } @@ -1598,7 +1598,7 @@ iterate_over_shapes_with_callback(rb_shape_t *shape, rb_ivar_foreach_callback_fu break; } VALUE val = iv_list[shape->next_iv_index - 1]; - if (val != Qundef) { + if (!UNDEF_P(val)) { callback(shape->edge_name, val, itr_data->arg); } return; @@ -1756,7 +1756,7 @@ rb_ivar_count(VALUE obj) st_index_t i, count, num = ROBJECT_IV_COUNT(obj); const VALUE *const ivptr = ROBJECT_IVPTR(obj); for (i = count = 0; i < num; ++i) { - if (ivptr[i] != Qundef) { + if (!UNDEF_P(ivptr[i])) { count++; } } @@ -1773,7 +1773,7 @@ rb_ivar_count(VALUE obj) st_index_t i, num = rb_shape_get_shape(obj)->next_iv_index; const VALUE *const ivptr = RCLASS_IVPTR(obj); for (i = count = 0; i < num; ++i) { - if (ivptr[i] != Qundef) { + if (!UNDEF_P(ivptr[i])) { count++; } } @@ -2283,7 +2283,7 @@ autoload_synchronized(VALUE _arguments) struct autoload_arguments *arguments = (struct autoload_arguments *)_arguments; rb_const_entry_t *constant_entry = rb_const_lookup(arguments->module, arguments->name); - if (constant_entry && constant_entry->value != Qundef) { + if (constant_entry && !UNDEF_P(constant_entry->value)) { return Qfalse; } @@ -2468,7 +2468,7 @@ autoloading_const_entry(VALUE mod, ID id) // Check if it's being loaded by the current thread/fiber: if (autoload_by_current(ele)) { - if (ac->value != Qundef) { + if (!UNDEF_P(ac->value)) { return ac; } } @@ -2482,7 +2482,7 @@ autoload_defined_p(VALUE mod, ID id) rb_const_entry_t *ce = rb_const_lookup(mod, id); // If there is no constant or the constant is not undefined (special marker for autoloading): - if (!ce || ce->value != Qundef) { + if (!ce || !UNDEF_P(ce->value)) { // We are not autoloading: return 0; } @@ -2578,7 +2578,7 @@ autoload_apply_constants(VALUE _arguments) // Iterate over all constants and assign them: ccan_list_for_each_safe(&arguments->autoload_data->constants, autoload_const, next, cnode) { - if (autoload_const->value != Qundef) { + if (!UNDEF_P(autoload_const->value)) { autoload_const_set(autoload_const); } } @@ -2617,7 +2617,7 @@ autoload_try_load(VALUE _arguments) // After we loaded the feature, if the constant is not defined, we remove it completely: rb_const_entry_t *ce = rb_const_lookup(arguments->module, arguments->name); - if (!ce || ce->value == Qundef) { + if (!ce || UNDEF_P(ce->value)) { result = Qfalse; rb_const_remove(arguments->module, arguments->name); @@ -2652,7 +2652,7 @@ rb_autoload_load(VALUE module, ID name) rb_const_entry_t *ce = rb_const_lookup(module, name); // We bail out as early as possible without any synchronisation: - if (!ce || ce->value != Qundef) { + if (!ce || !UNDEF_P(ce->value)) { return Qfalse; } @@ -2725,7 +2725,7 @@ static VALUE rb_const_get_0(VALUE klass, ID id, int exclude, int recurse, int visibility) { VALUE c = rb_const_search(klass, id, exclude, recurse, visibility); - if (c != Qundef) { + if (!UNDEF_P(c)) { if (UNLIKELY(!rb_ractor_main_p())) { if (!rb_ractor_shareable_p(c)) { rb_raise(rb_eRactorIsolationError, "can not access non-shareable objects in constant %"PRIsVALUE"::%s by non-main Ractor.", rb_class_path(klass), rb_id2name(id)); @@ -2769,7 +2769,7 @@ rb_const_search_from(VALUE klass, ID id, int exclude, int recurse, int visibilit } rb_const_warn_if_deprecated(ce, tmp, id); value = ce->value; - if (value == Qundef) { + if (UNDEF_P(value)) { struct autoload_const *ac; if (am == tmp) break; am = tmp; @@ -2798,7 +2798,7 @@ rb_const_search(VALUE klass, ID id, int exclude, int recurse, int visibility) if (klass == rb_cObject) exclude = FALSE; value = rb_const_search_from(klass, id, exclude, recurse, visibility); - if (value != Qundef) return value; + if (!UNDEF_P(value)) return value; if (exclude) return value; if (BUILTIN_TYPE(klass) != T_MODULE) return value; /* search global const too, if klass is a module */ @@ -2935,7 +2935,7 @@ rb_const_remove(VALUE mod, ID id) val = ce->value; - if (val == Qundef) { + if (UNDEF_P(val)) { autoload_delete(mod, id); val = Qnil; } @@ -3092,7 +3092,7 @@ rb_const_defined_0(VALUE klass, ID id, int exclude, int recurse, int visibility) if (visibility && RB_CONST_PRIVATE_P(ce)) { return (int)Qfalse; } - if (ce->value == Qundef && !check_autoload_required(tmp, id, 0) && + if (UNDEF_P(ce->value) && !check_autoload_required(tmp, id, 0) && !rb_autoloading_value(tmp, id, NULL, NULL)) return (int)Qfalse; @@ -3298,7 +3298,7 @@ const_tbl_update(struct autoload_const *ac, int autoload_force) if (rb_id_table_lookup(tbl, id, &value)) { ce = (rb_const_entry_t *)value; - if (ce->value == Qundef) { + if (UNDEF_P(ce->value)) { RUBY_ASSERT_CRITICAL_SECTION_ENTER(); VALUE file = ac->file; int line = ac->line; @@ -3398,7 +3398,7 @@ set_const_visibility(VALUE mod, int argc, const VALUE *argv, if ((ce = rb_const_lookup(mod, id))) { ce->flag &= ~mask; ce->flag |= flag; - if (ce->value == Qundef) { + if (UNDEF_P(ce->value)) { struct autoload_data *ele; ele = autoload_data_for_named_constant(mod, id, &ac); @@ -3508,7 +3508,7 @@ cvar_lookup_at(VALUE klass, ID id, st_data_t *v) } VALUE n = rb_ivar_lookup(klass, id, Qundef); - if (n == Qundef) return 0; + if (UNDEF_P(n)) return 0; if (v) *v = n; return 1; @@ -3838,7 +3838,7 @@ rb_mod_remove_cvar(VALUE mod, VALUE name) } rb_check_frozen(mod); val = rb_ivar_delete(mod, id, Qundef); - if (val != Qundef) { + if (!UNDEF_P(val)) { return (VALUE)val; } if (rb_cvar_defined(mod, id)) { diff --git a/vm.c b/vm.c index d540aa1c8b0508..cdeabce6da2fff 100644 --- a/vm.c +++ b/vm.c @@ -172,7 +172,7 @@ vm_ep_in_heap_p_(const rb_execution_context_t *ec, const VALUE *ep) if (VM_EP_IN_HEAP_P(ec, ep)) { VALUE envval = ep[VM_ENV_DATA_INDEX_ENV]; /* VM_ENV_ENVVAL(ep); */ - if (envval != Qundef) { + if (!UNDEF_P(envval)) { const rb_env_t *env = (const rb_env_t *)envval; VM_ASSERT(vm_assert_env(envval)); @@ -1838,7 +1838,7 @@ rb_vm_make_jump_tag_but_local_jump(int state, VALUE val) default: return Qnil; } - if (val == Qundef) { + if (UNDEF_P(val)) { val = GET_EC()->tag->retval; } return make_localjump_error(mesg, val, state); @@ -2278,7 +2278,7 @@ vm_exec_enter_vm_loop(rb_execution_context_t *ec, struct rb_vm_exec_context *ctx ctx->result = ec->errinfo; rb_ec_raised_reset(ec, RAISED_STACKOVERFLOW | RAISED_NOMEMORY); - while ((ctx->result = vm_exec_handle_exception(ec, ctx->state, ctx->result, &ctx->initial)) == Qundef) { + while (UNDEF_P(ctx->result = vm_exec_handle_exception(ec, ctx->state, ctx->result, &ctx->initial))) { /* caught a jump, exec the handler */ ctx->result = vm_exec_core(ec, ctx->initial); vm_loop_start: @@ -2295,7 +2295,7 @@ vm_exec_bottom_main(void *context) struct rb_vm_exec_context *ctx = (struct rb_vm_exec_context *)context; ctx->state = TAG_NONE; - if (!ctx->jit_enable_p || (ctx->result = jit_exec(ctx->ec)) == Qundef) { + if (!ctx->jit_enable_p || UNDEF_P(ctx->result = jit_exec(ctx->ec))) { ctx->result = vm_exec_core(ctx->ec, ctx->initial); } vm_exec_enter_vm_loop(ctx->ec, ctx, ctx->tag, true); @@ -2347,7 +2347,7 @@ vm_exec(rb_execution_context_t *ec, bool jit_enable_p) _tag.retval = Qnil; if ((state = EC_EXEC_TAG()) == TAG_NONE) { - if (!jit_enable_p || (result = jit_exec(ec)) == Qundef) { + if (!jit_enable_p || UNDEF_P(result = jit_exec(ec))) { result = vm_exec_core(ec, initial); } goto vm_loop_start; /* fallback to the VM */ @@ -2355,7 +2355,7 @@ vm_exec(rb_execution_context_t *ec, bool jit_enable_p) else { result = ec->errinfo; rb_ec_raised_reset(ec, RAISED_STACKOVERFLOW | RAISED_NOMEMORY); - while ((result = vm_exec_handle_exception(ec, state, result, &initial)) == Qundef) { + while (UNDEF_P(result = vm_exec_handle_exception(ec, state, result, &initial))) { /* caught a jump, exec the handler */ result = vm_exec_core(ec, initial); vm_loop_start: diff --git a/vm_args.c b/vm_args.c index 35adfd94b183ec..0197109b032b67 100644 --- a/vm_args.c +++ b/vm_args.c @@ -283,7 +283,7 @@ make_unknown_kw_hash(const VALUE *passed_keywords, int passed_keyword_len, const VALUE obj = rb_ary_hidden_new(1); for (i=0; i 0; - args.respond_to_missing = (ret != Qundef); + args.respond_to_missing = !UNDEF_P(ret); ret = def; cme = callable_method_entry(klass, idMethodMissing, &args.defined_class); @@ -684,7 +684,7 @@ rb_check_funcall_default_kw(VALUE recv, ID mid, int argc, const VALUE *argv, VAL if (!check_funcall_callable(ec, me)) { VALUE ret = check_funcall_missing(ec, klass, recv, mid, argc, argv, respond, def, kw_splat); - if (ret == Qundef) ret = def; + if (UNDEF_P(ret)) ret = def; return ret; } stack_check(ec); @@ -715,7 +715,7 @@ rb_check_funcall_with_hook_kw(VALUE recv, ID mid, int argc, const VALUE *argv, if (!check_funcall_callable(ec, me)) { VALUE ret = check_funcall_missing(ec, klass, recv, mid, argc, argv, respond, Qundef, kw_splat); - (*hook)(ret != Qundef, recv, mid, argc, argv, arg); + (*hook)(!UNDEF_P(ret), recv, mid, argc, argv, arg); return ret; } stack_check(ec); @@ -846,7 +846,7 @@ rb_method_call_status(rb_execution_context_t *ec, const rb_callable_method_entry defined_class = RBASIC(defined_class)->klass; } - if (self == Qundef || !rb_obj_is_kind_of(self, defined_class)) { + if (UNDEF_P(self) || !rb_obj_is_kind_of(self, defined_class)) { return MISSING_PROTECTED; } } @@ -1357,7 +1357,7 @@ rb_yield_1(VALUE val) VALUE rb_yield(VALUE val) { - if (val == Qundef) { + if (UNDEF_P(val)) { return rb_yield_0(0, NULL); } else { @@ -1698,7 +1698,7 @@ eval_make_iseq(VALUE src, VALUE fname, int line, const rb_binding_t *bind, fname = rb_source_location(&line); } - if (fname != Qundef) { + if (!UNDEF_P(fname)) { if (!NIL_P(fname)) fname = rb_fstring(fname); } else { diff --git a/vm_exec.c b/vm_exec.c index 0f59d08b963507..36bacfd5e84d8e 100644 --- a/vm_exec.c +++ b/vm_exec.c @@ -183,7 +183,7 @@ vm_exec_core(rb_execution_context_t *ec, VALUE initial) } } - if ((th = rb_ec_thread_ptr(ec))->retval != Qundef) { + if (!UNDEF_P((th = rb_ec_thread_ptr(ec))->retval)) { VALUE ret = th->retval; th->retval = Qundef; return ret; diff --git a/vm_insnhelper.c b/vm_insnhelper.c index a39b6f87ccc941..5d7d5ddee8f35e 100644 --- a/vm_insnhelper.c +++ b/vm_insnhelper.c @@ -1018,7 +1018,7 @@ vm_get_ev_const(rb_execution_context_t *ec, VALUE orig_klass, ID id, bool allow_ if ((ce = rb_const_lookup(klass, id))) { rb_const_warn_if_deprecated(ce, klass, id); val = ce->value; - if (val == Qundef) { + if (UNDEF_P(val)) { if (am == klass) break; am = klass; if (is_defined) return 1; @@ -1212,7 +1212,7 @@ vm_getivar(VALUE obj, ID id, const rb_iseq_t *iseq, IVC ic, const struct rb_call } val = ivar_list[index]; - RUBY_ASSERT(val != Qundef); + RUBY_ASSERT(!UNDEF_P(val)); } else { // cache miss case #if RUBY_DEBUG @@ -1243,7 +1243,7 @@ vm_getivar(VALUE obj, ID id, const rb_iseq_t *iseq, IVC ic, const struct rb_call // We fetched the ivar list above val = ivar_list[index]; - RUBY_ASSERT(val != Qundef); + RUBY_ASSERT(!UNDEF_P(val)); } else { if (is_attr) { @@ -1258,7 +1258,7 @@ vm_getivar(VALUE obj, ID id, const rb_iseq_t *iseq, IVC ic, const struct rb_call } - RUBY_ASSERT(val != Qundef); + RUBY_ASSERT(!UNDEF_P(val)); return val; @@ -1517,7 +1517,7 @@ vm_getclassvariable(const rb_iseq_t *iseq, const rb_control_frame_t *reg_cfp, ID RB_DEBUG_COUNTER_INC(cvar_read_inline_hit); VALUE v = rb_ivar_lookup(ic->entry->class_value, id, Qundef); - RUBY_ASSERT(v != Qundef); + RUBY_ASSERT(!UNDEF_P(v)); return v; } @@ -1573,14 +1573,14 @@ vm_setinstancevariable(const rb_iseq_t *iseq, VALUE obj, ID id, VALUE val, IVC i attr_index_t index; vm_ic_atomic_shape_and_index(ic, &dest_shape_id, &index); - if (UNLIKELY(vm_setivar(obj, id, val, dest_shape_id, index) == Qundef)) { + if (UNLIKELY(UNDEF_P(vm_setivar(obj, id, val, dest_shape_id, index)))) { switch (BUILTIN_TYPE(obj)) { case T_OBJECT: case T_CLASS: case T_MODULE: break; default: - if (vm_setivar_default(obj, id, val, dest_shape_id, index) != Qundef) { + if (!UNDEF_P(vm_setivar_default(obj, id, val, dest_shape_id, index))) { return; } } @@ -2303,7 +2303,7 @@ opt_equality(const rb_iseq_t *cd_owner, VALUE recv, VALUE obj, CALL_DATA cd) VM_ASSERT(cd_owner != NULL); VALUE val = opt_equality_specialized(recv, obj); - if (val != Qundef) return val; + if (!UNDEF_P(val)) return val; if (!vm_method_cfunc_is(cd_owner, cd, recv, rb_obj_equal)) { return Qundef; @@ -2337,7 +2337,7 @@ static VALUE opt_equality_by_mid(VALUE recv, VALUE obj, ID mid) { VALUE val = opt_equality_specialized(recv, obj); - if (val != Qundef) { + if (!UNDEF_P(val)) { return val; } else { @@ -3301,7 +3301,7 @@ vm_call_attrset_direct(rb_execution_context_t *ec, rb_control_frame_t *cfp, cons ID id = vm_cc_cme(cc)->def->body.attr.id; rb_check_frozen_internal(obj); VALUE res = vm_setivar(obj, id, val, dest_shape_id, index); - if (res == Qundef) { + if (UNDEF_P(res)) { switch (BUILTIN_TYPE(obj)) { case T_OBJECT: case T_CLASS: @@ -3310,7 +3310,7 @@ vm_call_attrset_direct(rb_execution_context_t *ec, rb_control_frame_t *cfp, cons default: { res = vm_setivar_default(obj, id, val, dest_shape_id, index); - if (res != Qundef) { + if (!UNDEF_P(res)) { return res; } } @@ -4526,7 +4526,7 @@ check_respond_to_missing(VALUE obj, VALUE v) args[0] = obj; args[1] = Qfalse; r = rb_check_funcall(v, idRespond_to_missing, 2, args); - if (r != Qundef && RTEST(r)) { + if (!UNDEF_P(r) && RTEST(r)) { return true; } else { @@ -5076,7 +5076,7 @@ vm_sendish( } #endif - if (val != Qundef) { + if (!UNDEF_P(val)) { return val; /* CFUNC normal return */ } else { @@ -5094,7 +5094,7 @@ vm_sendish( VM_ENV_FLAGS_SET(GET_EP(), VM_FRAME_FLAG_FINISH); return vm_exec(ec, true); } - else if ((val = jit_exec(ec)) == Qundef) { + else if (UNDEF_P(val = jit_exec(ec))) { VM_ENV_FLAGS_SET(GET_EP(), VM_FRAME_FLAG_FINISH); return vm_exec(ec, false); } @@ -5550,7 +5550,7 @@ vm_opt_neq(const rb_iseq_t *iseq, CALL_DATA cd, CALL_DATA cd_eq, VALUE recv, VAL if (vm_method_cfunc_is(iseq, cd, recv, rb_obj_not_equal)) { VALUE val = opt_equality(iseq, recv, obj, cd_eq); - if (val != Qundef) { + if (!UNDEF_P(val)) { return RBOOL(!RTEST(val)); } } diff --git a/vm_method.c b/vm_method.c index 08e91ea0392f91..3aa3337f110790 100644 --- a/vm_method.c +++ b/vm_method.c @@ -2735,7 +2735,7 @@ basic_obj_respond_to(rb_execution_context_t *ec, VALUE obj, ID id, int pub) case 0: ret = basic_obj_respond_to_missing(ec, klass, obj, ID2SYM(id), RBOOL(!pub)); - return RTEST(ret) && ret != Qundef; + return RTEST(ret) && !UNDEF_P(ret); default: return TRUE; } @@ -2847,7 +2847,7 @@ obj_respond_to(int argc, VALUE *argv, VALUE obj) if (!(id = rb_check_id(&mid))) { VALUE ret = basic_obj_respond_to_missing(ec, CLASS_OF(obj), obj, rb_to_symbol(mid), priv); - if (ret == Qundef) ret = Qfalse; + if (UNDEF_P(ret)) ret = Qfalse; return ret; } return RBOOL(basic_obj_respond_to(ec, obj, id, !RTEST(priv))); diff --git a/vm_trace.c b/vm_trace.c index 3e5cb29156c9f0..ea1d47361d624d 100644 --- a/vm_trace.c +++ b/vm_trace.c @@ -262,7 +262,7 @@ remove_event_hook(const rb_execution_context_t *ec, const rb_thread_t *filter_th while (hook) { if (func == 0 || hook->func == func) { if (hook->filter.th == filter_th || filter_th == MATCH_ANY_FILTER_TH) { - if (data == Qundef || hook->data == data) { + if (UNDEF_P(data) || hook->data == data) { hook->hook_flags |= RUBY_EVENT_HOOK_FLAG_DELETED; ret+=1; list->need_clean = true; @@ -857,7 +857,7 @@ rb_tracearg_event(rb_trace_arg_t *trace_arg) static void fill_path_and_lineno(rb_trace_arg_t *trace_arg) { - if (trace_arg->path == Qundef) { + if (UNDEF_P(trace_arg->path)) { get_path_and_lineno(trace_arg->ec, trace_arg->cfp, trace_arg->event, &trace_arg->path, &trace_arg->lineno); } } @@ -986,7 +986,7 @@ rb_tracearg_return_value(rb_trace_arg_t *trace_arg) else { rb_raise(rb_eRuntimeError, "not supported by this event"); } - if (trace_arg->data == Qundef) { + if (UNDEF_P(trace_arg->data)) { rb_bug("rb_tracearg_return_value: unreachable"); } return trace_arg->data; @@ -1001,7 +1001,7 @@ rb_tracearg_raised_exception(rb_trace_arg_t *trace_arg) else { rb_raise(rb_eRuntimeError, "not supported by this event"); } - if (trace_arg->data == Qundef) { + if (UNDEF_P(trace_arg->data)) { rb_bug("rb_tracearg_raised_exception: unreachable"); } return trace_arg->data; @@ -1018,7 +1018,7 @@ rb_tracearg_eval_script(rb_trace_arg_t *trace_arg) else { rb_raise(rb_eRuntimeError, "not supported by this event"); } - if (data == Qundef) { + if (UNDEF_P(data)) { rb_bug("rb_tracearg_raised_exception: unreachable"); } if (rb_obj_is_iseq(data)) { @@ -1042,7 +1042,7 @@ rb_tracearg_instruction_sequence(rb_trace_arg_t *trace_arg) else { rb_raise(rb_eRuntimeError, "not supported by this event"); } - if (data == Qundef) { + if (UNDEF_P(data)) { rb_bug("rb_tracearg_raised_exception: unreachable"); } @@ -1067,7 +1067,7 @@ rb_tracearg_object(rb_trace_arg_t *trace_arg) else { rb_raise(rb_eRuntimeError, "not supported by this event"); } - if (trace_arg->data == Qundef) { + if (UNDEF_P(trace_arg->data)) { rb_bug("rb_tracearg_object: unreachable"); } return trace_arg->data;