mirror of
https://github.com/ruby/ruby.git
synced 2025-08-23 21:14:23 +02:00
Integer conversion
* ext/bigdecimal/bigdecimal.c: use NUM2INT and NUM2USHORT to reject nil. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55438 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
5065e28809
commit
c79c06fa1c
1 changed files with 11 additions and 11 deletions
|
@ -468,7 +468,7 @@ check_rounding_mode(VALUE const v)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
sw = (unsigned short)FIX2UINT(v);
|
sw = NUM2USHORT(v);
|
||||||
if (!VpIsRoundMode(sw)) {
|
if (!VpIsRoundMode(sw)) {
|
||||||
rb_raise(rb_eArgError, "invalid rounding mode");
|
rb_raise(rb_eArgError, "invalid rounding mode");
|
||||||
}
|
}
|
||||||
|
@ -521,7 +521,7 @@ BigDecimal_mode(int argc, VALUE *argv, VALUE self)
|
||||||
unsigned long f,fo;
|
unsigned long f,fo;
|
||||||
|
|
||||||
rb_scan_args(argc, argv, "11", &which, &val);
|
rb_scan_args(argc, argv, "11", &which, &val);
|
||||||
f = (unsigned long)FIX2INT(which);
|
f = (unsigned long)NUM2INT(which);
|
||||||
|
|
||||||
if (f & VP_EXCEPTION_ALL) {
|
if (f & VP_EXCEPTION_ALL) {
|
||||||
/* Exception mode setting */
|
/* Exception mode setting */
|
||||||
|
@ -591,7 +591,7 @@ static SIGNED_VALUE
|
||||||
GetPositiveInt(VALUE v)
|
GetPositiveInt(VALUE v)
|
||||||
{
|
{
|
||||||
SIGNED_VALUE n;
|
SIGNED_VALUE n;
|
||||||
n = FIX2INT(v);
|
n = NUM2INT(v);
|
||||||
if (n < 0) {
|
if (n < 0) {
|
||||||
rb_raise(rb_eArgError, "argument must be positive");
|
rb_raise(rb_eArgError, "argument must be positive");
|
||||||
}
|
}
|
||||||
|
@ -1720,10 +1720,10 @@ BigDecimal_round(int argc, VALUE *argv, VALUE self)
|
||||||
iLoc = 0;
|
iLoc = 0;
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
iLoc = FIX2INT(vLoc);
|
iLoc = NUM2INT(vLoc);
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
iLoc = FIX2INT(vLoc);
|
iLoc = NUM2INT(vLoc);
|
||||||
sw = check_rounding_mode(vRound);
|
sw = check_rounding_mode(vRound);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
@ -1774,7 +1774,7 @@ BigDecimal_truncate(int argc, VALUE *argv, VALUE self)
|
||||||
iLoc = 0;
|
iLoc = 0;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
iLoc = FIX2INT(vLoc);
|
iLoc = NUM2INT(vLoc);
|
||||||
}
|
}
|
||||||
|
|
||||||
GUARD_OBJ(a, GetVpValue(self, 1));
|
GUARD_OBJ(a, GetVpValue(self, 1));
|
||||||
|
@ -1834,7 +1834,7 @@ BigDecimal_floor(int argc, VALUE *argv, VALUE self)
|
||||||
iLoc = 0;
|
iLoc = 0;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
iLoc = FIX2INT(vLoc);
|
iLoc = NUM2INT(vLoc);
|
||||||
}
|
}
|
||||||
|
|
||||||
GUARD_OBJ(a, GetVpValue(self, 1));
|
GUARD_OBJ(a, GetVpValue(self, 1));
|
||||||
|
@ -1880,7 +1880,7 @@ BigDecimal_ceil(int argc, VALUE *argv, VALUE self)
|
||||||
if (rb_scan_args(argc, argv, "01", &vLoc) == 0) {
|
if (rb_scan_args(argc, argv, "01", &vLoc) == 0) {
|
||||||
iLoc = 0;
|
iLoc = 0;
|
||||||
} else {
|
} else {
|
||||||
iLoc = FIX2INT(vLoc);
|
iLoc = NUM2INT(vLoc);
|
||||||
}
|
}
|
||||||
|
|
||||||
GUARD_OBJ(a, GetVpValue(self, 1));
|
GUARD_OBJ(a, GetVpValue(self, 1));
|
||||||
|
@ -2623,7 +2623,7 @@ BigDecimal_limit(int argc, VALUE *argv, VALUE self)
|
||||||
if (rb_scan_args(argc, argv, "01", &nFig) == 1) {
|
if (rb_scan_args(argc, argv, "01", &nFig) == 1) {
|
||||||
int nf;
|
int nf;
|
||||||
if (NIL_P(nFig)) return nCur;
|
if (NIL_P(nFig)) return nCur;
|
||||||
nf = FIX2INT(nFig);
|
nf = NUM2INT(nFig);
|
||||||
if (nf < 0) {
|
if (nf < 0) {
|
||||||
rb_raise(rb_eArgError, "argument must be positive");
|
rb_raise(rb_eArgError, "argument must be positive");
|
||||||
}
|
}
|
||||||
|
@ -3458,7 +3458,7 @@ VpGetException (void)
|
||||||
return RMPD_EXCEPTION_MODE_DEFAULT;
|
return RMPD_EXCEPTION_MODE_DEFAULT;
|
||||||
}
|
}
|
||||||
|
|
||||||
return (unsigned short)FIX2UINT(vmode);
|
return NUM2USHORT(vmode);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -3528,7 +3528,7 @@ VpGetRoundMode(void)
|
||||||
return RMPD_ROUNDING_MODE_DEFAULT;
|
return RMPD_ROUNDING_MODE_DEFAULT;
|
||||||
}
|
}
|
||||||
|
|
||||||
return (unsigned short)FIX2INT(vmode);
|
return NUM2USHORT(vmode);
|
||||||
}
|
}
|
||||||
|
|
||||||
VP_EXPORT int
|
VP_EXPORT int
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue