* bignum.c (enum big_op_t): new type.
(big_op): use enum big_op_t. (big_gt): ditto. (big_ge): ditto. (big_lt): ditto. (big_le): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36396 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
051799b674
commit
4cd00ffe2d
@ -1,3 +1,12 @@
|
|||||||
|
Mon Jul 16 14:14:21 2012 Tanaka Akira <akr@fsij.org>
|
||||||
|
|
||||||
|
* bignum.c (enum big_op_t): new type.
|
||||||
|
(big_op): use enum big_op_t.
|
||||||
|
(big_gt): ditto.
|
||||||
|
(big_ge): ditto.
|
||||||
|
(big_lt): ditto.
|
||||||
|
(big_le): ditto.
|
||||||
|
|
||||||
Sat Jul 14 18:18:48 2012 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
Sat Jul 14 18:18:48 2012 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||||
|
|
||||||
* array.c (rb_get_values_at): fill with nil out of range.
|
* array.c (rb_get_values_at): fill with nil out of range.
|
||||||
|
33
bignum.c
33
bignum.c
@ -1487,8 +1487,15 @@ rb_big_cmp(VALUE x, VALUE y)
|
|||||||
(RBIGNUM_SIGN(x) ? INT2FIX(-1) : INT2FIX(1));
|
(RBIGNUM_SIGN(x) ? INT2FIX(-1) : INT2FIX(1));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
enum big_op_t {
|
||||||
|
big_op_gt,
|
||||||
|
big_op_ge,
|
||||||
|
big_op_lt,
|
||||||
|
big_op_le
|
||||||
|
};
|
||||||
|
|
||||||
static VALUE
|
static VALUE
|
||||||
big_op(VALUE x, VALUE y, int op)
|
big_op(VALUE x, VALUE y, enum big_op_t op)
|
||||||
{
|
{
|
||||||
VALUE rel;
|
VALUE rel;
|
||||||
int n;
|
int n;
|
||||||
@ -1516,10 +1523,10 @@ big_op(VALUE x, VALUE y, int op)
|
|||||||
{
|
{
|
||||||
ID id = 0;
|
ID id = 0;
|
||||||
switch (op) {
|
switch (op) {
|
||||||
case 0: id = '>'; break;
|
case big_op_gt: id = '>'; break;
|
||||||
case 1: id = rb_intern(">="); break;
|
case big_op_ge: id = rb_intern(">="); break;
|
||||||
case 2: id = '<'; break;
|
case big_op_lt: id = '<'; break;
|
||||||
case 3: id = rb_intern("<="); break;
|
case big_op_le: id = rb_intern("<="); break;
|
||||||
}
|
}
|
||||||
return rb_num_coerce_relop(x, y, id);
|
return rb_num_coerce_relop(x, y, id);
|
||||||
}
|
}
|
||||||
@ -1529,10 +1536,10 @@ big_op(VALUE x, VALUE y, int op)
|
|||||||
n = FIX2INT(rel);
|
n = FIX2INT(rel);
|
||||||
|
|
||||||
switch (op) {
|
switch (op) {
|
||||||
case 0: return n > 0 ? Qtrue : Qfalse;
|
case big_op_gt: return n > 0 ? Qtrue : Qfalse;
|
||||||
case 1: return n >= 0 ? Qtrue : Qfalse;
|
case big_op_ge: return n >= 0 ? Qtrue : Qfalse;
|
||||||
case 2: return n < 0 ? Qtrue : Qfalse;
|
case big_op_lt: return n < 0 ? Qtrue : Qfalse;
|
||||||
case 3: return n <= 0 ? Qtrue : Qfalse;
|
case big_op_le: return n <= 0 ? Qtrue : Qfalse;
|
||||||
}
|
}
|
||||||
return Qundef;
|
return Qundef;
|
||||||
}
|
}
|
||||||
@ -1548,7 +1555,7 @@ big_op(VALUE x, VALUE y, int op)
|
|||||||
static VALUE
|
static VALUE
|
||||||
big_gt(VALUE x, VALUE y)
|
big_gt(VALUE x, VALUE y)
|
||||||
{
|
{
|
||||||
return big_op(x, y, 0);
|
return big_op(x, y, big_op_gt);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -1562,7 +1569,7 @@ big_gt(VALUE x, VALUE y)
|
|||||||
static VALUE
|
static VALUE
|
||||||
big_ge(VALUE x, VALUE y)
|
big_ge(VALUE x, VALUE y)
|
||||||
{
|
{
|
||||||
return big_op(x, y, 1);
|
return big_op(x, y, big_op_ge);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -1576,7 +1583,7 @@ big_ge(VALUE x, VALUE y)
|
|||||||
static VALUE
|
static VALUE
|
||||||
big_lt(VALUE x, VALUE y)
|
big_lt(VALUE x, VALUE y)
|
||||||
{
|
{
|
||||||
return big_op(x, y, 2);
|
return big_op(x, y, big_op_lt);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -1590,7 +1597,7 @@ big_lt(VALUE x, VALUE y)
|
|||||||
static VALUE
|
static VALUE
|
||||||
big_le(VALUE x, VALUE y)
|
big_le(VALUE x, VALUE y)
|
||||||
{
|
{
|
||||||
return big_op(x, y, 3);
|
return big_op(x, y, big_op_le);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
Loading…
x
Reference in New Issue
Block a user