summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2011-09-29 11:07:45 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2011-09-29 11:07:45 +0000
commit8e6e8e628888aa251f771ce8b3fe30a6b41a7a0e ()
treee531ed455f2ffb110e9a16de2161b3865a19d582
parent68f97d7851481e11ce90bb349345dc4caed00cf7 (diff)
* use RB_TYPE_P which is optimized for constant types, instead of
comparison with TYPE. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33357 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog5
-rw-r--r--array.c8
-rw-r--r--bignum.c16
-rw-r--r--class.c20
-rw-r--r--compile.c8
-rw-r--r--complex.c10
-rw-r--r--enum.c2
-rw-r--r--enumerator.c2
-rw-r--r--error.c2
-rw-r--r--eval.c2
-rw-r--r--eval_error.c4
-rw-r--r--gc.c4
-rw-r--r--hash.c4
-rw-r--r--io.c24
-rw-r--r--marshal.c18
-rw-r--r--math.c2
-rw-r--r--numeric.c10
-rw-r--r--object.c12
-rw-r--r--pack.c6
-rw-r--r--parse.y2
-rw-r--r--proc.c6
-rw-r--r--process.c6
-rw-r--r--random.c4
-rw-r--r--range.c6
-rw-r--r--rational.c10
-rw-r--r--re.c6
-rw-r--r--ruby.c2
-rw-r--r--safe.c2
-rw-r--r--string.c26
-rw-r--r--struct.c12
-rw-r--r--thread.c14
-rw-r--r--time.c32
-rw-r--r--transcode.c8
-rw-r--r--variable.c6
-rw-r--r--vm_eval.c8
-rw-r--r--vm_insnhelper.c6
-rw-r--r--vm_method.c8
37 files changed, 164 insertions, 159 deletions
@@ -1,3 +1,8 @@
Wed Sep 28 09:20:37 2011 Nobuyoshi Nakada <[email protected]>
* configure.in (pthread_np.h): needs pthread.h to be included
@@ -2016,7 +2016,7 @@ enum {
sort_optimizable_count
};
-#define STRING_P(s) (TYPE(s) == T_STRING && CLASS_OF(s) == rb_cString)
#define SORT_OPTIMIZABLE_BIT(type) (1U << TOKEN_PASTE(sort_opt_,type))
#define SORT_OPTIMIZABLE(data, type) \
@@ -3137,7 +3137,7 @@ rb_ary_rassoc(VALUE ary, VALUE value)
for (i = 0; i < RARRAY_LEN(ary); ++i) {
v = RARRAY_PTR(ary)[i];
- if (TYPE(v) == T_ARRAY &&
RARRAY_LEN(v) > 1 &&
rb_equal(RARRAY_PTR(v)[1], value))
return v;
@@ -3176,7 +3176,7 @@ static VALUE
rb_ary_equal(VALUE ary1, VALUE ary2)
{
if (ary1 == ary2) return Qtrue;
- if (TYPE(ary2) != T_ARRAY) {
if (!rb_respond_to(ary2, rb_intern("to_ary"))) {
return Qfalse;
}
@@ -3211,7 +3211,7 @@ static VALUE
rb_ary_eql(VALUE ary1, VALUE ary2)
{
if (ary1 == ary2) return Qtrue;
- if (TYPE(ary2) != T_ARRAY) return Qfalse;
if (RARRAY_LEN(ary1) != RARRAY_LEN(ary2)) return Qfalse;
return rb_exec_recursive_paired(recursive_eql, ary1, ary2, ary2);
}
@@ -101,7 +101,7 @@ rb_cmpint(VALUE val, VALUE a, VALUE b)
if (l < 0) return -1;
return 0;
}
- if (TYPE(val) == T_BIGNUM) {
if (BIGZEROP(val)) return 0;
if (RBIGNUM_SIGN(val)) return 1;
return -1;
@@ -269,7 +269,7 @@ bigfixize(VALUE x)
static VALUE
bignorm(VALUE x)
{
- if (!FIXNUM_P(x) && TYPE(x) == T_BIGNUM) {
x = bigfixize(bigtrunc(x));
}
return x;
@@ -1628,7 +1628,7 @@ rb_big_eq(VALUE x, VALUE y)
static VALUE
rb_big_eql(VALUE x, VALUE y)
{
- if (TYPE(y) != T_BIGNUM) return Qfalse;
if (RBIGNUM_SIGN(x) != RBIGNUM_SIGN(y)) return Qfalse;
if (RBIGNUM_LEN(x) != RBIGNUM_LEN(y)) return Qfalse;
if (MEMCMP(BDIGITS(x),BDIGITS(y),BDIGIT,RBIGNUM_LEN(y)) != 0) return Qfalse;
@@ -3107,7 +3107,7 @@ rb_big_pow(VALUE x, VALUE y)
static inline VALUE
bit_coerce(VALUE x)
{
- while (!FIXNUM_P(x) && TYPE(x) != T_BIGNUM) {
rb_raise(rb_eTypeError,
"can't convert %s into Integer for bitwise arithmetic",
rb_obj_classname(x));
@@ -3434,7 +3434,7 @@ rb_big_lshift(VALUE x, VALUE y)
}
break;
}
- else if (TYPE(y) == T_BIGNUM) {
if (!RBIGNUM_SIGN(y)) {
VALUE t = check_shiftdown(y, x);
if (!NIL_P(t)) return t;
@@ -3498,7 +3498,7 @@ rb_big_rshift(VALUE x, VALUE y)
}
break;
}
- else if (TYPE(y) == T_BIGNUM) {
if (RBIGNUM_SIGN(y)) {
VALUE t = check_shiftdown(y, x);
if (!NIL_P(t)) return t;
@@ -3586,7 +3586,7 @@ rb_big_aref(VALUE x, VALUE y)
VALUE shift;
long i, s1, s2;
- if (TYPE(y) == T_BIGNUM) {
if (!RBIGNUM_SIGN(y))
return INT2FIX(0);
bigtrunc(y);
@@ -3646,7 +3646,7 @@ rb_big_coerce(VALUE x, VALUE y)
if (FIXNUM_P(y)) {
return rb_assoc_new(rb_int2big(FIX2LONG(y)), x);
}
- else if (TYPE(y) == T_BIGNUM) {
return rb_assoc_new(y, x);
}
else {
@@ -93,7 +93,7 @@ rb_class_boot(VALUE super)
void
rb_check_inheritable(VALUE super)
{
- if (TYPE(super) != T_CLASS) {
rb_raise(rb_eTypeError, "superclass must be a Class (%s given)",
rb_obj_classname(super));
}
@@ -463,7 +463,7 @@ rb_define_class(const char *name, VALUE super)
id = rb_intern(name);
if (rb_const_defined(rb_cObject, id)) {
klass = rb_const_get(rb_cObject, id);
- if (TYPE(klass) != T_CLASS) {
rb_raise(rb_eTypeError, "%s is not a class", name);
}
if (rb_class_real(RCLASS_SUPER(klass)) != super) {
@@ -530,7 +530,7 @@ rb_define_class_id_under(VALUE outer, ID id, VALUE super)
if (rb_const_defined_at(outer, id)) {
klass = rb_const_get_at(outer, id);
- if (TYPE(klass) != T_CLASS) {
rb_raise(rb_eTypeError, "%s is not a class", rb_id2name(id));
}
if (rb_class_real(RCLASS_SUPER(klass)) != super) {
@@ -581,7 +581,7 @@ rb_define_module(const char *name)
id = rb_intern(name);
if (rb_const_defined(rb_cObject, id)) {
module = rb_const_get(rb_cObject, id);
- if (TYPE(module) == T_MODULE)
return module;
rb_raise(rb_eTypeError, "%s is not a module", rb_obj_classname(module));
}
@@ -605,7 +605,7 @@ rb_define_module_id_under(VALUE outer, ID id)
if (rb_const_defined_at(outer, id)) {
module = rb_const_get_at(outer, id);
- if (TYPE(module) == T_MODULE)
return module;
rb_raise(rb_eTypeError, "%s::%s is not a module",
rb_class2name(outer), rb_obj_classname(module));
@@ -636,7 +636,7 @@ include_class_new(VALUE module, VALUE super)
RCLASS_CONST_TBL(klass) = RCLASS_CONST_TBL(module);
RCLASS_M_TBL(klass) = RCLASS_M_TBL(module);
RCLASS_SUPER(klass) = super;
- if (TYPE(module) == T_ICLASS) {
RBASIC(klass)->klass = RBASIC(module)->klass;
}
else {
@@ -659,7 +659,7 @@ rb_include_module(VALUE klass, VALUE module)
rb_secure(4);
}
- if (TYPE(module) != T_MODULE) {
Check_Type(module, T_MODULE);
}
@@ -791,7 +791,7 @@ rb_mix_module(VALUE klass, VALUE module, st_table *constants, st_table *methods)
rb_secure(4);
}
- if (TYPE(module) != T_MODULE) {
Check_Type(module, T_MODULE);
}
@@ -1248,7 +1248,7 @@ rb_obj_singleton_methods(int argc, VALUE *argv, VALUE obj)
klass = RCLASS_SUPER(klass);
}
if (RTEST(recur)) {
- while (klass && (FL_TEST(klass, FL_SINGLETON) || TYPE(klass) == T_ICLASS)) {
st_foreach(RCLASS_M_TBL(klass), method_entry_i, (st_data_t)list);
klass = RCLASS_SUPER(klass);
}
@@ -1435,7 +1435,7 @@ rb_singleton_class(VALUE obj)
VALUE klass = singleton_class_of(obj);
/* ensures an exposed class belongs to its own eigenclass */
- if (TYPE(obj) == T_CLASS) (void)ENSURE_EIGENCLASS(klass);
return klass;
}
@@ -1263,7 +1263,7 @@ static st_index_t
cdhash_hash(VALUE a)
{
if (SPECIAL_CONST_P(a)) return (st_index_t)a;
- if (TYPE(a) == T_STRING) return rb_str_hash(a);
{
VALUE hval = rb_hash(a);
return (st_index_t)FIX2LONG(hval);
@@ -2335,7 +2335,7 @@ case_when_optimizable_literal(NODE * node)
case NODE_LIT: {
VALUE v = node->nd_lit;
double ival;
- if (TYPE(v) == T_FLOAT &&
modf(RFLOAT_VALUE(v), &ival) == 0.0) {
return FIXABLE(ival) ? LONG2FIX((long)ival) : rb_dbl2big(ival);
}
@@ -5314,7 +5314,7 @@ iseq_build_from_ary_body(rb_iseq_t *iseq, LINK_ANCHOR *anchor,
else if (FIXNUM_P(obj)) {
line_no = NUM2INT(obj);
}
- else if (TYPE(obj) == T_ARRAY) {
VALUE *argv = 0;
int argc = RARRAY_LENINT(obj) - 1;
st_data_t insn_id;
@@ -5356,7 +5356,7 @@ iseq_build_from_ary_body(rb_iseq_t *iseq, LINK_ANCHOR *anchor,
case TS_ISEQ:
{
if (op != Qnil) {
- if (TYPE(op) == T_ARRAY) {
argv[j] = rb_iseq_load(op, iseq->self, Qnil);
}
else if (CLASS_OF(op) == rb_cISeq) {
@@ -121,7 +121,7 @@ f_mul(VALUE x, VALUE y)
if (FIXNUM_P(y)) {
long iy = FIX2LONG(y);
if (iy == 0) {
- if (FIXNUM_P(x) || TYPE(x) == T_BIGNUM)
return ZERO;
}
else if (iy == 1)
@@ -130,7 +130,7 @@ f_mul(VALUE x, VALUE y)
else if (FIXNUM_P(x)) {
long ix = FIX2LONG(x);
if (ix == 0) {
- if (FIXNUM_P(y) || TYPE(y) == T_BIGNUM)
return ZERO;
}
else if (ix == 1)
@@ -166,14 +166,14 @@ fun1(real_p)
inline static VALUE
f_to_i(VALUE x)
{
- if (TYPE(x) == T_STRING)
return rb_str_to_inum(x, 10, 0);
return rb_funcall(x, id_to_i, 0);
}
inline static VALUE
f_to_f(VALUE x)
{
- if (TYPE(x) == T_STRING)
return DBL2NUM(rb_str_to_dbl(x, 0));
return rb_funcall(x, id_to_f, 0);
}
@@ -944,7 +944,7 @@ nucomp_coerce(VALUE self, VALUE other)
{
if (k_numeric_p(other) && f_real_p(other))
return rb_assoc_new(f_complex_new_bang1(CLASS_OF(self), other), self);
- if (TYPE(other) == T_COMPLEX)
return rb_assoc_new(other, self);
rb_raise(rb_eTypeError, "%s can't be coerced into %s",
@@ -901,7 +901,7 @@ enum_sort_by(VALUE obj)
RETURN_ENUMERATOR(obj, 0, 0);
- if (TYPE(obj) == T_ARRAY && RARRAY_LEN(obj) <= LONG_MAX/2) {
ary = rb_ary_new2(RARRAY_LEN(obj)*2);
}
else {
@@ -590,7 +590,7 @@ enumerator_next_values(VALUE obj)
static VALUE
ary2sv(VALUE args, int dup)
{
- if (TYPE(args) != T_ARRAY)
return args;
switch (RARRAY_LEN(args)) {
@@ -1134,7 +1134,7 @@ syserr_initialize(int argc, VALUE *argv, VALUE self)
if (!NIL_P(error) && st_lookup(syserr_tbl, NUM2LONG(error), &data)) {
klass = (VALUE)data;
/* change class */
- if (TYPE(self) != T_OBJECT) { /* insurance to avoid type crash */
rb_raise(rb_eTypeError, "invalid instance type");
}
RBASIC(self)->klass = klass;
@@ -169,7 +169,7 @@ ruby_cleanup(volatile int ex)
if (!RTEST(err)) continue;
/* th->errinfo contains a NODE while break'ing */
- if (TYPE(err) == T_NODE) continue;
if (rb_obj_is_kind_of(err, rb_eSystemExit)) {
ex = sysexit_status(err);
@@ -202,7 +202,7 @@ rb_print_undef(VALUE klass, ID id, int scope)
}
rb_name_error(id, "undefined%s method `%s' for %s `%s'", v,
rb_id2name(id),
- (TYPE(klass) == T_MODULE) ? "module" : "class",
rb_class2name(klass));
}
@@ -211,7 +211,7 @@ rb_print_undef_str(VALUE klass, VALUE name)
{
rb_name_error_str(name, "undefined method `%s' for %s `%s'",
RSTRING_PTR(name),
- (TYPE(klass) == T_MODULE) ? "module" : "class",
rb_class2name(klass));
}
@@ -3265,7 +3265,7 @@ count_objects(int argc, VALUE *argv, VALUE os)
VALUE hash;
if (rb_scan_args(argc, argv, "01", &hash) == 1) {
- if (TYPE(hash) != T_HASH)
rb_raise(rb_eTypeError, "non-hash given");
}
@@ -3384,7 +3384,7 @@ gc_stat(int argc, VALUE *argv, VALUE self)
VALUE hash;
if (rb_scan_args(argc, argv, "01", &hash) == 1) {
- if (TYPE(hash) != T_HASH)
rb_raise(rb_eTypeError, "non-hash given");
}
@@ -44,7 +44,7 @@ rb_any_cmp(VALUE a, VALUE b)
if (FIXNUM_P(a) && FIXNUM_P(b)) {
return a != b;
}
- if (TYPE(a) == T_STRING && RBASIC(a)->klass == rb_cString &&
TYPE(b) == T_STRING && RBASIC(b)->klass == rb_cString) {
return rb_str_hash_cmp(a, b);
}
@@ -1599,7 +1599,7 @@ hash_equal(VALUE hash1, VALUE hash2, int eql)
struct equal_data data;
if (hash1 == hash2) return Qtrue;
- if (TYPE(hash2) != T_HASH) {
if (!rb_respond_to(hash2, rb_intern("to_hash"))) {
return Qfalse;
}
@@ -1053,7 +1053,7 @@ rb_io_flush(VALUE io)
{
rb_io_t *fptr;
- if (TYPE(io) != T_FILE) {
return rb_funcall(io, id_flush, 0);
}
@@ -2117,7 +2117,7 @@ rb_io_write_nonblock(VALUE io, VALUE str)
long n;
rb_secure(4);
- if (TYPE(str) != T_STRING)
str = rb_obj_as_string(str);
io = GetWriteIO(io);
@@ -3144,7 +3144,7 @@ rb_io_getbyte(VALUE io)
GetOpenFile(io, fptr);
rb_io_check_byte_readable(fptr);
READ_CHECK(fptr);
- if (fptr->fd == 0 && (fptr->mode & FMODE_TTY) && TYPE(rb_stdout) == T_FILE) {
rb_io_t *ofp;
GetOpenFile(rb_stdout, ofp);
if (ofp->mode & FMODE_TTY) {
@@ -3243,7 +3243,7 @@ rb_io_ungetc(VALUE io, VALUE c)
if (FIXNUM_P(c)) {
c = rb_enc_uint_chr(FIX2UINT(c), io_read_encoding(fptr));
}
- else if (TYPE(c) == T_BIGNUM) {
c = rb_enc_uint_chr(NUM2UINT(c), io_read_encoding(fptr));
}
else {
@@ -3886,7 +3886,7 @@ rb_io_syswrite(VALUE io, VALUE str)
long n;
rb_secure(4);
- if (TYPE(str) != T_STRING)
str = rb_obj_as_string(str);
io = GetWriteIO(io);
@@ -6113,7 +6113,7 @@ static VALUE
rb_io_putc(VALUE io, VALUE ch)
{
VALUE str;
- if (TYPE(ch) == T_STRING) {
str = rb_str_substr(ch, 0, 1);
}
else {
@@ -6254,7 +6254,7 @@ void
rb_p(VALUE obj) /* for debug print within C code */
{
VALUE str = rb_obj_as_string(rb_inspect(obj));
- if (TYPE(rb_stdout) == T_FILE &&
rb_method_basic_definition_p(CLASS_OF(rb_stdout), id_write)) {
io_write(rb_stdout, str, 1);
io_write(rb_stdout, rb_default_rs, 0);
@@ -6298,7 +6298,7 @@ rb_f_p(int argc, VALUE *argv, VALUE self)
else if (argc > 1) {
ret = rb_ary_new4(argc, argv);
}
- if (TYPE(rb_stdout) == T_FILE) {
rb_io_flush(rb_stdout);
}
return ret;
@@ -6845,7 +6845,7 @@ argf_next_argv(VALUE argf)
int stdout_binmode = 0;
int fmode;
- if (TYPE(rb_stdout) == T_FILE) {
GetOpenFile(rb_stdout, fptr);
if (fptr->mode & FMODE_BINMODE)
stdout_binmode = 1;
@@ -6885,7 +6885,7 @@ argf_next_argv(VALUE argf)
VALUE str;
int fw;
- if (TYPE(rb_stdout) == T_FILE && rb_stdout != orig_stdout) {
rb_io_close(rb_stdout);
}
fstat(fr, &st);
@@ -7770,7 +7770,7 @@ rb_io_ctl(VALUE io, VALUE req, VALUE arg, int io_p)
GetOpenFile(io, fptr);
retval = io_cntl(fptr->fd, cmd, narg, io_p);
if (retval < 0) rb_sys_fail_path(fptr->pathv);
- if (TYPE(arg) == T_STRING && RSTRING_PTR(arg)[len] != 17) {
rb_raise(rb_eArgError, "return value overflowed string");
}
@@ -9269,7 +9269,7 @@ rb_io_set_encoding(int argc, VALUE *argv, VALUE io)
rb_io_t *fptr;
VALUE v1, v2, opt;
- if (TYPE(io) != T_FILE) {
return rb_funcall2(io, id_set_encoding, argc, argv);
}
@@ -210,7 +210,7 @@ class2path(VALUE klass)
VALUE path = rb_class_path(klass);
const char *n;
- n = must_not_be_anonymous((TYPE(klass) == T_CLASS ? "class" : "module"), path);
if (rb_path_to_class(path) != rb_class_real(klass)) {
rb_raise(rb_eTypeError, "%s can't be referred to", n);
}
@@ -656,7 +656,7 @@ w_object(VALUE obj, struct dump_arg *arg, int limit)
v = rb_funcall(obj, s_dump, 1, INT2NUM(limit));
check_dump_arg(arg, s_dump);
- if (TYPE(v) != T_STRING) {
rb_raise(rb_eTypeError, "_dump() must return string");
}
hasiv = has_ivars(obj, ivtbl);
@@ -1271,7 +1271,7 @@ path2class(VALUE path)
{
VALUE v = rb_path_to_class(path);
- if (TYPE(v) != T_CLASS) {
rb_raise(rb_eArgError, "%.*s does not refer to class",
(int)RSTRING_LEN(path), RSTRING_PTR(path));
}
@@ -1283,7 +1283,7 @@ path2module(VALUE path)
{
VALUE v = rb_path_to_class(path);
- if (TYPE(v) != T_MODULE) {
rb_raise(rb_eArgError, "%.*s does not refer to module",
(int)RSTRING_LEN(path), RSTRING_PTR(path));
}
@@ -1364,11 +1364,11 @@ r_object0(struct load_arg *arg, int *ivp, VALUE extmod)
rb_raise(rb_eTypeError, "singleton can't be loaded");
}
v = r_object0(arg, 0, extmod);
- if (rb_special_const_p(v) || TYPE(v) == T_OBJECT || TYPE(v) == T_CLASS) {
format_error:
rb_raise(rb_eArgError, "dump format error (user class)");
}
- if (TYPE(v) == T_MODULE || !RTEST(rb_class_inherited_p(c, RBASIC(v)->klass))) {
VALUE tmp = rb_obj_alloc(c);
if (TYPE(v) != TYPE(tmp)) goto format_error;
@@ -1554,7 +1554,7 @@ r_object0(struct load_arg *arg, int *ivp, VALUE extmod)
long len = r_long(arg);
v = rb_obj_alloc(klass);
- if (TYPE(v) != T_STRUCT) {
rb_raise(rb_eTypeError, "class %s not a struct", rb_class2name(klass));
}
mem = rb_struct_s_members(klass);
@@ -1630,7 +1630,7 @@ r_object0(struct load_arg *arg, int *ivp, VALUE extmod)
{
st_index_t idx = r_prepare(arg);
v = obj_alloc_by_path(r_unique(arg), arg);
- if (TYPE(v) != T_OBJECT) {
rb_raise(rb_eArgError, "dump format error");
}
v = r_entry0(v, idx, arg);
@@ -1654,7 +1654,7 @@ r_object0(struct load_arg *arg, int *ivp, VALUE extmod)
else {
v = rb_obj_alloc(klass);
}
- if (TYPE(v) != T_DATA) {
rb_raise(rb_eArgError, "dump format error");
}
v = r_entry(v, arg);
@@ -24,7 +24,7 @@
VALUE rb_mMath;
VALUE rb_eMathDomainError;
-#define Need_Float(x) do {if (TYPE(x) != T_FLOAT) {(x) = rb_to_float(x);}} while(0)
#define Need_Float2(x,y) do {\
Need_Float(x);\
Need_Float(y);\
@@ -204,7 +204,7 @@ do_coerce(VALUE *x, VALUE *y, int err)
a[0] = *x; a[1] = *y;
ary = rb_rescue(coerce_body, (VALUE)a, err?coerce_rescue:0, (VALUE)a);
- if (TYPE(ary) != T_ARRAY || RARRAY_LEN(ary) != 2) {
if (err) {
rb_raise(rb_eTypeError, "coerce must return [x, y]");
}
@@ -1272,7 +1272,7 @@ flo_le(VALUE x, VALUE y)
static VALUE
flo_eql(VALUE x, VALUE y)
{
- if (TYPE(y) == T_FLOAT) {
double a = RFLOAT_VALUE(x);
double b = RFLOAT_VALUE(y);
#if defined(_MSC_VER) && _MSC_VER < 1300
@@ -1480,7 +1480,7 @@ int_round_0(VALUE num, int ndigits)
if (neg) x = -x;
return LONG2NUM(x);
}
- if (TYPE(f) == T_FLOAT) {
/* then int_pow overflow */
return INT2FIX(0);
}
@@ -1676,7 +1676,7 @@ num_truncate(VALUE num)
int
ruby_float_step(VALUE from, VALUE to, VALUE step, int excl)
{
- if (TYPE(from) == T_FLOAT || TYPE(to) == T_FLOAT || TYPE(step) == T_FLOAT) {
const double epsilon = DBL_EPSILON;
double beg = NUM2DBL(from);
double end = NUM2DBL(to);
@@ -2960,7 +2960,7 @@ fix_rev(VALUE num)
static VALUE
bit_coerce(VALUE x)
{
- while (!FIXNUM_P(x) && TYPE(x) != T_BIGNUM) {
rb_raise(rb_eTypeError,
"can't convert %s into Integer for bitwise arithmetic",
rb_obj_classname(x));
@@ -432,7 +432,7 @@ inspect_obj(VALUE obj, VALUE str, int recur)
static VALUE
rb_obj_inspect(VALUE obj)
{
- if (TYPE(obj) == T_OBJECT && rb_obj_basic_to_s_p(obj)) {
int has_ivar = 0;
VALUE *ptr = ROBJECT_IVPTR(obj);
long len = ROBJECT_NUMIV(obj);
@@ -1661,7 +1661,7 @@ rb_class_superclass(VALUE klass)
if (klass == rb_cBasicObject) return Qnil;
rb_raise(rb_eTypeError, "uninitialized class");
}
- while (TYPE(super) == T_ICLASS) {
super = RCLASS_SUPER(super);
}
if (!super) {
@@ -2157,7 +2157,7 @@ rb_to_integer(VALUE val, const char *method)
VALUE v;
if (FIXNUM_P(val)) return val;
- if (TYPE(val) == T_BIGNUM) return val;
v = convert_type(val, "Integer", method, TRUE);
if (!rb_obj_is_kind_of(v, rb_cInteger)) {
const char *cname = rb_obj_classname(val);
@@ -2173,7 +2173,7 @@ rb_check_to_integer(VALUE val, const char *method)
VALUE v;
if (FIXNUM_P(val)) return val;
- if (TYPE(val) == T_BIGNUM) return val;
v = convert_type(val, "Integer", method, FALSE);
if (!rb_obj_is_kind_of(v, rb_cInteger)) {
return Qnil;
@@ -2437,7 +2437,7 @@ rb_f_float(VALUE obj, VALUE arg)
VALUE
rb_to_float(VALUE val)
{
- if (TYPE(val) == T_FLOAT) return val;
if (!rb_obj_is_kind_of(val, rb_cNumeric)) {
rb_raise(rb_eTypeError, "can't convert %s into Float",
NIL_P(val) ? "nil" :
@@ -2451,7 +2451,7 @@ rb_to_float(VALUE val)
VALUE
rb_check_to_float(VALUE val)
{
- if (TYPE(val) == T_FLOAT) return val;
if (!rb_obj_is_kind_of(val, rb_cNumeric)) {
return Qnil;
}
@@ -243,7 +243,7 @@ num2i32(VALUE x)
x = rb_to_int(x); /* is nil OK? (should not) */
if (FIXNUM_P(x)) return FIX2LONG(x);
- if (TYPE(x) == T_BIGNUM) {
return rb_big2ulong_pack(x);
}
rb_raise(rb_eTypeError, "can't convert %s to `integer'", rb_obj_classname(x));
@@ -995,9 +995,9 @@ pack_pack(VALUE ary, VALUE fmt)
char c, *bufs, *bufe;
from = NEXTFROM;
- if (TYPE(from) == T_BIGNUM) {
VALUE big128 = rb_uint2big(128);
- while (TYPE(from) == T_BIGNUM) {
from = rb_big_divmod(from, big128);
c = NUM2INT(RARRAY_PTR(from)[1]) | 0x80; /* mod */
rb_str_buf_cat(buf, &c, sizeof(char));
@@ -5152,7 +5152,7 @@ debug_lines(const char *f)
CONST_ID(script_lines, "SCRIPT_LINES__");
if (rb_const_defined_at(rb_cObject, script_lines)) {
VALUE hash = rb_const_get_at(rb_cObject, script_lines);
- if (TYPE(hash) == T_HASH) {
VALUE fname = rb_str_new2(f);
VALUE lines = rb_ary_new();
rb_hash_aset(hash, fname, lines);
@@ -951,7 +951,7 @@ mnew(VALUE klass, VALUE obj, ID id, VALUE mclass, int scope)
}
rb_name_error(id, "method `%s' for %s `%s' is %s",
rb_id2name(id),
- (TYPE(klass) == T_MODULE) ? "module" : "class",
rb_class2name(klass),
v);
}
@@ -965,11 +965,11 @@ mnew(VALUE klass, VALUE obj, ID id, VALUE mclass, int scope)
klass = me->klass;
while (rclass != klass &&
- (FL_TEST(rclass, FL_SINGLETON) || TYPE(rclass) == T_ICLASS)) {
rclass = RCLASS_SUPER(rclass);
}
- if (TYPE(klass) == T_ICLASS) {
klass = RBASIC(klass)->klass;
}
@@ -1418,7 +1418,7 @@ check_exec_redirect(VALUE key, VALUE val, VALUE options)
flags = rb_ary_entry(val, 1);
if (NIL_P(flags))
flags = INT2NUM(O_RDONLY);
- else if (TYPE(flags) == T_STRING)
flags = INT2NUM(rb_io_modestr_oflags(StringValueCStr(flags)));
else
flags = rb_to_int(flags);
@@ -1433,7 +1433,7 @@ check_exec_redirect(VALUE key, VALUE val, VALUE options)
index = EXEC_OPTION_OPEN;
path = val;
FilePathValue(path);
- if (TYPE(key) == T_FILE)
key = check_exec_redirect_fd(key, 1);
if (FIXNUM_P(key) && (FIX2INT(key) == 1 || FIX2INT(key) == 2))
flags = INT2NUM(O_WRONLY|O_CREAT|O_TRUNC);
@@ -1453,7 +1453,7 @@ check_exec_redirect(VALUE key, VALUE val, VALUE options)
ary = hide_obj(rb_ary_new());
rb_ary_store(options, index, ary);
}
- if (TYPE(key) != T_ARRAY) {
VALUE fd = check_exec_redirect_fd(key, !NIL_P(param));
rb_ary_push(ary, hide_obj(rb_assoc_new(fd, param)));
}
@@ -1035,7 +1035,7 @@ rand_range(struct MT* mt, VALUE range)
if ((v = vmax = range_values(range, &beg, &end, &excl)) == Qfalse)
return Qfalse;
- if (TYPE(vmax) != T_FLOAT && (v = rb_check_to_integer(vmax, "to_int"), !NIL_P(v))) {
long max;
vmax = v;
v = Qnil;
@@ -1149,7 +1149,7 @@ random_rand(int argc, VALUE *argv, VALUE obj)
if (NIL_P(vmax)) {
v = Qnil;
}
- else if (TYPE(vmax) != T_FLOAT && (v = rb_check_to_integer(vmax, "to_int"), !NIL_P(v))) {
v = rand_int(&rnd->mt, v, 1);
}
else if (v = rb_check_to_float(vmax), !NIL_P(v)) {
@@ -865,10 +865,10 @@ range_include(VALUE range, VALUE val)
}
return Qfalse;
}
- else if (TYPE(beg) == T_STRING && TYPE(end) == T_STRING &&
RSTRING_LEN(beg) == 1 && RSTRING_LEN(end) == 1) {
if (NIL_P(val)) return Qfalse;
- if (TYPE(val) == T_STRING) {
if (RSTRING_LEN(val) == 0 || RSTRING_LEN(val) > 1)
return Qfalse;
else {
@@ -939,7 +939,7 @@ range_dumper(VALUE range)
static VALUE
range_loader(VALUE range, VALUE obj)
{
- if (TYPE(obj) != T_OBJECT || RBASIC(obj)->klass != rb_cObject) {
rb_raise(rb_eTypeError, "not a dumped range object");
}
@@ -106,7 +106,7 @@ f_mul(VALUE x, VALUE y)
if (FIXNUM_P(y)) {
long iy = FIX2LONG(y);
if (iy == 0) {
- if (FIXNUM_P(x) || TYPE(x) == T_BIGNUM)
return ZERO;
}
else if (iy == 1)
@@ -115,7 +115,7 @@ f_mul(VALUE x, VALUE y)
else if (FIXNUM_P(x)) {
long ix = FIX2LONG(x);
if (ix == 0) {
- if (FIXNUM_P(y) || TYPE(y) == T_BIGNUM)
return ZERO;
}
else if (ix == 1)
@@ -141,14 +141,14 @@ fun1(negate)
inline static VALUE
f_to_i(VALUE x)
{
- if (TYPE(x) == T_STRING)
return rb_str_to_inum(x, 10, 0);
return rb_funcall(x, id_to_i, 0);
}
inline static VALUE
f_to_f(VALUE x)
{
- if (TYPE(x) == T_STRING)
return DBL2NUM(rb_str_to_dbl(x, 0));
return rb_funcall(x, id_to_f, 0);
}
@@ -2161,7 +2161,7 @@ string_to_r(VALUE self)
a1 = RARRAY_PTR(a)[0];
if (!NIL_P(a1)) {
- if (TYPE(a1) == T_FLOAT)
rb_raise(rb_eFloatDomainError, "Infinity");
return a1;
}
@@ -2587,7 +2587,7 @@ static VALUE
rb_reg_equal(VALUE re1, VALUE re2)
{
if (re1 == re2) return Qtrue;
- if (TYPE(re2) != T_REGEXP) return Qfalse;
rb_reg_check(re1); rb_reg_check(re2);
if (FL_TEST(re1, KCODE_FIXED) != FL_TEST(re2, KCODE_FIXED)) return Qfalse;
if (RREGEXP(re1)->ptr->options != RREGEXP(re2)->ptr->options) return Qfalse;
@@ -2635,7 +2635,7 @@ match_equal(VALUE match1, VALUE match2)
{
const struct re_registers *regs1, *regs2;
if (match1 == match2) return Qtrue;
- if (TYPE(match2) != T_MATCH) return Qfalse;
if (!rb_str_equal(RMATCH(match1)->str, RMATCH(match2)->str)) return Qfalse;
if (!rb_reg_equal(RMATCH(match1)->regexp, RMATCH(match2)->regexp)) return Qfalse;
regs1 = RMATCH_REGS(match1);
@@ -2795,7 +2795,7 @@ rb_reg_match2(VALUE re)
long start;
VALUE line = rb_lastline_get();
- if (TYPE(line) != T_STRING) {
rb_backref_set(Qnil);
return Qnil;
}
@@ -1137,7 +1137,7 @@ uscore_get(void)
VALUE line;
line = rb_lastline_get();
- if (TYPE(line) != T_STRING) {
rb_raise(rb_eTypeError, "$_ value need to be String (%s given)",
NIL_P(line) ? "nil" : rb_obj_classname(line));
}
@@ -122,7 +122,7 @@ void
rb_check_safe_str(VALUE x)
{
rb_check_safe_obj(x);
- if (TYPE(x) != T_STRING) {
rb_raise(rb_eTypeError, "wrong argument type %s (expected String)",
rb_obj_classname(x));
}
@@ -854,11 +854,11 @@ rb_obj_as_string(VALUE obj)
{
VALUE str;
- if (TYPE(obj) == T_STRING) {
return obj;
}
str = rb_funcall(obj, id_to_s, 0);
- if (TYPE(str) != T_STRING)
return rb_any_to_s(obj);
if (OBJ_TAINTED(obj)) OBJ_TAINT(str);
return str;
@@ -1404,7 +1404,7 @@ VALUE
rb_string_value(volatile VALUE *ptr)
{
VALUE s = *ptr;
- if (TYPE(s) != T_STRING) {
s = rb_str_to_str(s);
*ptr = s;
}
@@ -2075,7 +2075,7 @@ rb_str_concat(VALUE str1, VALUE str2)
{
unsigned int lc;
- if (FIXNUM_P(str2) || TYPE(str2) == T_BIGNUM) {
if (rb_num_to_uint(str2, &lc) == 0) {
}
else if (FIXNUM_P(str2)) {
@@ -2250,7 +2250,7 @@ VALUE
rb_str_equal(VALUE str1, VALUE str2)
{
if (str1 == str2) return Qtrue;
- if (TYPE(str2) != T_STRING) {
if (!rb_respond_to(str2, rb_intern("to_str"))) {
return Qfalse;
}
@@ -2270,7 +2270,7 @@ static VALUE
rb_str_eql(VALUE str1, VALUE str2)
{
if (str1 == str2) return Qtrue;
- if (TYPE(str2) != T_STRING) return Qfalse;
return str_eql(str1, str2);
}
@@ -2302,7 +2302,7 @@ rb_str_cmp_m(VALUE str1, VALUE str2)
{
long result;
- if (TYPE(str2) != T_STRING) {
if (!rb_respond_to(str2, rb_intern("to_str"))) {
return Qnil;
}
@@ -2472,7 +2472,7 @@ rb_str_index_m(int argc, VALUE *argv, VALUE str)
if (pos < 0) {
pos += str_strlen(str, STR_ENC_GET(str));
if (pos < 0) {
- if (TYPE(sub) == T_REGEXP) {
rb_backref_set(Qnil);
}
return Qnil;
@@ -2581,7 +2581,7 @@ rb_str_rindex_m(int argc, VALUE *argv, VALUE str)
if (pos < 0) {
pos += len;
if (pos < 0) {
- if (TYPE(sub) == T_REGEXP) {
rb_backref_set(Qnil);
}
return Qnil;
@@ -5751,7 +5751,7 @@ rb_str_split_m(int argc, VALUE *argv, VALUE str)
}
else {
fs_set:
- if (TYPE(spat) == T_STRING) {
rb_encoding *enc2 = STR_ENC_GET(spat);
split_type = string;
@@ -7064,7 +7064,7 @@ rb_str_partition(VALUE str, VALUE sep)
long pos;
int regex = FALSE;
- if (TYPE(sep) == T_REGEXP) {
pos = rb_reg_search(sep, str, 0, 0);
regex = TRUE;
}
@@ -7114,7 +7114,7 @@ rb_str_rpartition(VALUE str, VALUE sep)
long pos = RSTRING_LEN(str);
int regex = FALSE;
- if (TYPE(sep) == T_REGEXP) {
pos = rb_reg_search(sep, str, pos, 1);
regex = TRUE;
}
@@ -7206,7 +7206,7 @@ rb_str_end_with(int argc, VALUE *argv, VALUE str)
void
rb_str_setter(VALUE val, ID id, VALUE *var)
{
- if (!NIL_P(val) && TYPE(val) != T_STRING) {
rb_raise(rb_eTypeError, "value of %s must be String", rb_id2name(id));
}
*var = val;
@@ -43,7 +43,7 @@ rb_struct_s_members(VALUE klass)
if (NIL_P(members)) {
rb_raise(rb_eTypeError, "uninitialized struct");
}
- if (TYPE(members) != T_ARRAY) {
rb_raise(rb_eTypeError, "corrupted struct");
}
return members;
@@ -354,7 +354,7 @@ num_members(VALUE klass)
{
VALUE members;
members = struct_ivar_get(klass, id_members);
- if (TYPE(members) != T_ARRAY) {
rb_raise(rb_eTypeError, "broken members");
}
return RARRAY_LEN(members);
@@ -644,7 +644,7 @@ rb_struct_aref(VALUE s, VALUE idx)
{
long i;
- if (TYPE(idx) == T_STRING || TYPE(idx) == T_SYMBOL) {
return rb_struct_aref_id(s, rb_to_id(idx));
}
@@ -709,7 +709,7 @@ rb_struct_aset(VALUE s, VALUE idx, VALUE val)
{
long i;
- if (TYPE(idx) == T_STRING || TYPE(idx) == T_SYMBOL) {
return rb_struct_aset_id(s, rb_to_id(idx), val);
}
@@ -827,7 +827,7 @@ static VALUE
rb_struct_equal(VALUE s, VALUE s2)
{
if (s == s2) return Qtrue;
- if (TYPE(s2) != T_STRUCT) return Qfalse;
if (rb_obj_class(s) != rb_obj_class(s2)) return Qfalse;
if (RSTRUCT_LEN(s) != RSTRUCT_LEN(s2)) {
rb_bug("inconsistent struct"); /* should never happen */
@@ -897,7 +897,7 @@ static VALUE
rb_struct_eql(VALUE s, VALUE s2)
{
if (s == s2) return Qtrue;
- if (TYPE(s2) != T_STRUCT) return Qfalse;
if (rb_obj_class(s) != rb_obj_class(s2)) return Qfalse;
if (RSTRUCT_LEN(s) != RSTRUCT_LEN(s2)) {
rb_bug("inconsistent struct"); /* should never happen */
@@ -493,7 +493,7 @@ thread_start_func_2(rb_thread_t *th, VALUE *stack_start, VALUE *register_stack_s
main_th = th->vm->main_thread;
if (th != main_th) {
- if (TYPE(errinfo) == T_OBJECT) {
/* treat with normal error object */
rb_threadptr_raise(main_th, 1, &errinfo);
}
@@ -3738,7 +3738,7 @@ recursive_list_access(void)
volatile VALUE hash = rb_thread_local_aref(rb_thread_current(), recursive_key);
VALUE sym = ID2SYM(rb_frame_this_func());
VALUE list;
- if (NIL_P(hash) || TYPE(hash) != T_HASH) {
hash = rb_hash_new();
OBJ_UNTRUST(hash);
rb_thread_local_aset(rb_thread_current(), recursive_key, hash);
@@ -3747,7 +3747,7 @@ recursive_list_access(void)
else {
list = rb_hash_aref(hash, sym);
}
- if (NIL_P(list) || TYPE(list) != T_HASH) {
list = rb_hash_new();
OBJ_UNTRUST(list);
rb_hash_aset(hash, sym, list);
@@ -3768,7 +3768,7 @@ recursive_check(VALUE list, VALUE obj_id, VALUE paired_obj_id)
if (pair_list == Qundef)
return Qfalse;
if (paired_obj_id) {
- if (TYPE(pair_list) != T_HASH) {
if (pair_list != paired_obj_id)
return Qfalse;
}
@@ -3801,7 +3801,7 @@ recursive_push(VALUE list, VALUE obj, VALUE paired_obj)
rb_hash_aset(list, obj, paired_obj);
}
else {
- if (TYPE(pair_list) != T_HASH){
VALUE other_paired_obj = pair_list;
pair_list = rb_hash_new();
OBJ_UNTRUST(pair_list);
@@ -3831,7 +3831,7 @@ recursive_pop(VALUE list, VALUE obj, VALUE paired_obj)
rb_raise(rb_eTypeError, "invalid inspect_tbl pair_list for %s in %s",
StringValuePtr(symname), StringValuePtr(thrname));
}
- if (TYPE(pair_list) == T_HASH) {
rb_hash_delete(pair_list, paired_obj);
if (!RHASH_EMPTY_P(pair_list)) {
return; /* keep hash until is empty */
@@ -4424,7 +4424,7 @@ call_trace_proc(VALUE args, int tracing)
if (id == ID_ALLOCATOR)
return Qnil;
if (klass) {
- if (TYPE(klass) == T_ICLASS) {
klass = RBASIC(klass)->klass;
}
else if (FL_TEST(klass, FL_SINGLETON)) {
@@ -73,7 +73,7 @@ add(VALUE x, VALUE y)
if (FIXABLE(l)) return LONG2FIX(l);
return LONG2NUM(l);
}
- if (TYPE(x) == T_BIGNUM) return rb_big_plus(x, y);
return rb_funcall(x, '+', 1, y);
}
@@ -85,7 +85,7 @@ sub(VALUE x, VALUE y)
if (FIXABLE(l)) return LONG2FIX(l);
return LONG2NUM(l);
}
- if (TYPE(x) == T_BIGNUM) return rb_big_minus(x, y);
return rb_funcall(x, '-', 1, y);
}
@@ -148,7 +148,7 @@ mul(VALUE x, VALUE y)
return LONG2NUM(z);
#endif
}
- if (TYPE(x) == T_BIGNUM)
return rb_big_mul(x, y);
return rb_funcall(x, '*', 1, y);
}
@@ -182,7 +182,7 @@ quo(VALUE x, VALUE y)
}
}
ret = rb_funcall(x, id_quo, 1, y);
- if (TYPE(ret) == T_RATIONAL &&
RRATIONAL(ret)->den == INT2FIX(1)) {
ret = RRATIONAL(ret)->num;
}
@@ -391,7 +391,7 @@ v2w(VALUE v)
if (FIXNUM_P(v)) {
return WIDEVAL_WRAP((WIDEVALUE)(SIGNED_WIDEVALUE)(long)v);
}
- else if (TYPE(v) == T_BIGNUM &&
RBIGNUM_LEN(v) * sizeof(BDIGIT) <= sizeof(WIDEVALUE)) {
return v2w_bignum(v);
}
@@ -451,7 +451,7 @@ wadd(wideval_t wx, wideval_t wy)
else
#endif
x = w2v(wx);
- if (TYPE(x) == T_BIGNUM) return v2w(rb_big_plus(x, w2v(wy)));
return v2w(rb_funcall(x, '+', 1, w2v(wy)));
}
@@ -467,7 +467,7 @@ wsub(wideval_t wx, wideval_t wy)
else
#endif
x = w2v(wx);
- if (TYPE(x) == T_BIGNUM) return v2w(rb_big_minus(x, w2v(wy)));
return v2w(rb_funcall(x, '-', 1, w2v(wy)));
}
@@ -525,9 +525,9 @@ wmul(wideval_t wx, wideval_t wy)
}
#endif
x = w2v(wx);
- if (TYPE(x) == T_BIGNUM) return v2w(rb_big_mul(x, w2v(wy)));
z = rb_funcall(x, '*', 1, w2v(wy));
- if (TYPE(z) == T_RATIONAL && RRATIONAL(z)->den == INT2FIX(1)) {
z = RRATIONAL(z)->num;
}
return v2w(z);
@@ -552,7 +552,7 @@ wquo(wideval_t wx, wideval_t wy)
x = w2v(wx);
y = w2v(wy);
ret = rb_funcall(x, id_quo, 1, y);
- if (TYPE(ret) == T_RATIONAL &&
RRATIONAL(ret)->den == INT2FIX(1)) {
ret = RRATIONAL(ret)->num;
}
@@ -2536,7 +2536,7 @@ static const char months[][4] = {
static int
obj2int(VALUE obj)
{
- if (TYPE(obj) == T_STRING) {
obj = rb_str_to_inum(obj, 10, FALSE);
}
@@ -2546,7 +2546,7 @@ obj2int(VALUE obj)
static VALUE
obj2vint(VALUE obj)
{
- if (TYPE(obj) == T_STRING) {
obj = rb_str_to_inum(obj, 10, FALSE);
}
else {
@@ -2561,7 +2561,7 @@ obj2subsecx(VALUE obj, VALUE *subsecx)
{
VALUE subsec;
- if (TYPE(obj) == T_STRING) {
obj = rb_str_to_inum(obj, 10, FALSE);
*subsecx = INT2FIX(0);
return NUM2INT(obj);
@@ -2575,7 +2575,7 @@ obj2subsecx(VALUE obj, VALUE *subsecx)
static long
usec2subsecx(VALUE obj)
{
- if (TYPE(obj) == T_STRING) {
obj = rb_str_to_inum(obj, 10, FALSE);
}
@@ -3216,7 +3216,7 @@ time_to_r(VALUE time)
GetTimeval(time, tobj);
v = w2v(rb_time_unmagnify(tobj->timew));
- if (TYPE(v) != T_RATIONAL) {
v = rb_Rational1(v);
}
return v;
@@ -4642,7 +4642,7 @@ time_mdump(VALUE time)
str = rb_str_new(buf, 8);
rb_copy_generic_ivar(str, time);
if (!rb_equal(nano, INT2FIX(0))) {
- if (TYPE(nano) == T_RATIONAL) {
rb_ivar_set(str, id_nano_num, RRATIONAL(nano)->num);
rb_ivar_set(str, id_nano_den, RRATIONAL(nano)->den);
}
@@ -2294,7 +2294,7 @@ transcode_loop(const unsigned char **in_pos, unsigned char **out_pos,
if (!ec)
rb_exc_raise(rb_econv_open_exc(src_encoding, dst_encoding, ecflags));
- if (!NIL_P(ecopts) && TYPE(ecopts) == T_HASH) {
fallback = rb_hash_aref(ecopts, sym_fallback);
if (RB_TYPE_P(fallback, T_HASH)) {
fallback_func = hash_fallback;
@@ -2471,7 +2471,7 @@ econv_opts(VALUE opt, int ecflags)
else if (v==sym_attr) {
ecflags |= ECONV_XML_ATTR_CONTENT_DECORATOR|ECONV_XML_ATTR_QUOTE_DECORATOR|ECONV_UNDEF_HEX_CHARREF;
}
- else if (TYPE(v) == T_SYMBOL) {
rb_raise(rb_eArgError, "unexpected value for xml option: %s", rb_id2name(SYM2ID(v)));
}
else {
@@ -2593,7 +2593,7 @@ rb_econv_open_opts(const char *source_encoding, const char *destination_encoding
replacement = Qnil;
}
else {
- if (TYPE(opthash) != T_HASH || !OBJ_FROZEN(opthash))
rb_bug("rb_econv_open_opts called with invalid opthash");
replacement = rb_hash_aref(opthash, sym_replace);
}
@@ -3057,7 +3057,7 @@ decorate_convpath(VALUE convpath, int ecflags)
len = n = RARRAY_LENINT(convpath);
if (n != 0) {
VALUE pair = RARRAY_PTR(convpath)[n-1];
- if (TYPE(pair) == T_ARRAY) {
const char *sname = rb_enc_name(rb_to_encoding(RARRAY_PTR(pair)[0]));
const char *dname = rb_enc_name(rb_to_encoding(RARRAY_PTR(pair)[1]));
transcoder_entry_t *entry = get_transcoder_entry(sname, dname);
@@ -161,7 +161,7 @@ classname(VALUE klass)
else {
path = (VALUE)n;
}
- if (TYPE(path) != T_STRING) {
rb_bug("class path is not set properly");
}
return path;
@@ -199,7 +199,7 @@ rb_class_path(VALUE klass)
else {
const char *s = "Class";
- if (TYPE(klass) == T_MODULE) {
if (rb_obj_class(klass) == rb_cModule) {
s = "Module";
}
@@ -2157,7 +2157,7 @@ rb_mod_public_constant(int argc, VALUE *argv, VALUE obj)
static VALUE
original_module(VALUE c)
{
- if (TYPE(c) == T_ICLASS)
return RBASIC(c)->klass;
return c;
}
@@ -410,7 +410,7 @@ rb_method_call_status(rb_thread_t *th, const rb_method_entry_t *me, call_type sc
if (((noex & NOEX_MASK) & NOEX_PROTECTED) && scope == CALL_PUBLIC) {
VALUE defined_class = klass;
- if (TYPE(defined_class) == T_ICLASS) {
defined_class = RBASIC(defined_class)->klass;
}
@@ -1063,9 +1063,9 @@ eval_string_with_cref(VALUE self, VALUE src, VALUE scope, NODE *cref, const char
CONST_ID(id_mesg, "mesg");
errat = rb_get_backtrace(errinfo);
mesg = rb_attr_get(errinfo, id_mesg);
- if (!NIL_P(errat) && TYPE(errat) == T_ARRAY &&
(bt2 = vm_backtrace(th, -2), RARRAY_LEN(bt2) > 0)) {
- if (!NIL_P(mesg) && TYPE(mesg) == T_STRING && !RSTRING_LEN(mesg)) {
if (OBJ_FROZEN(mesg)) {
VALUE m = rb_str_cat(rb_str_dup(RARRAY_PTR(errat)[0]), ": ", 2);
rb_ivar_set(errinfo, id_mesg, rb_str_append(m, mesg));
@@ -1189,7 +1189,7 @@ rb_eval_cmd(VALUE cmd, VALUE arg, int level)
level = 4;
}
- if (TYPE(cmd) != T_STRING) {
PUSH_TAG();
rb_set_safe_level_force(level);
if ((state = EXEC_TAG()) == 0) {
@@ -1282,7 +1282,7 @@ static VALUE
vm_getivar(VALUE obj, ID id, IC ic)
{
#if USE_IC_FOR_IVAR
- if (TYPE(obj) == T_OBJECT) {
VALUE val = Qundef;
VALUE klass = RBASIC(obj)->klass;
@@ -1337,7 +1337,7 @@ vm_setivar(VALUE obj, ID id, VALUE val, IC ic)
rb_check_frozen(obj);
- if (TYPE(obj) == T_OBJECT) {
VALUE klass = RBASIC(obj)->klass;
st_data_t index;
@@ -1645,7 +1645,7 @@ vm_expandarray(rb_control_frame_t *cfp, VALUE ary, rb_num_t num, int flag)
volatile VALUE tmp_ary;
rb_num_t len;
- if (TYPE(ary) != T_ARRAY) {
ary = rb_ary_to_ary(ary);
}
@@ -521,7 +521,7 @@ rb_export_method(VALUE klass, ID name, rb_method_flag_t noex)
}
me = search_method(klass, name);
- if (!me && TYPE(klass) == T_MODULE) {
me = search_method(rb_cObject, name);
}
@@ -639,7 +639,7 @@ rb_undef(VALUE klass, ID id)
s0 = "";
}
}
- else if (TYPE(c) == T_MODULE) {
s0 = " module";
}
rb_name_error(id, "undefined method `%s' for%s `%s'",
@@ -922,7 +922,7 @@ rb_alias(VALUE klass, ID name, ID def)
orig_me = search_method(klass, def);
if (UNDEFINED_METHOD_ENTRY_P(orig_me)) {
- if ((TYPE(klass) != T_MODULE) ||
(orig_me = search_method(rb_cObject, def), UNDEFINED_METHOD_ENTRY_P(orig_me))) {
rb_print_undef(klass, def, 0);
}
@@ -1176,7 +1176,7 @@ rb_mod_modfunc(int argc, VALUE *argv, VALUE module)
ID id;
const rb_method_entry_t *me;
- if (TYPE(module) != T_MODULE) {
rb_raise(rb_eTypeError, "module_function must be called for modules");
}