rational.c: conditionally defined variable

* rational.c (numeric_quo): variable 'canonicalization' is defined
  conditionally by CANON (and CANONICALIZATION_FOR_MATHN).

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42904 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nobu 2013-09-10 05:05:50 +00:00
parent 67129c8383
commit 9c060a59b4
2 changed files with 8 additions and 1 deletions

View File

@ -376,6 +376,8 @@ nucomp_canonicalization(int f)
{ {
canonicalization = f; canonicalization = f;
} }
#else
# define canonicalization <<<No canonicalization>>>
#endif #endif
inline static void inline static void

View File

@ -494,6 +494,8 @@ nurat_canonicalization(int f)
{ {
canonicalization = f; canonicalization = f;
} }
#else
# define canonicalization <<<No canonicalization>>>
#endif #endif
inline static void inline static void
@ -1867,10 +1869,13 @@ numeric_quo(VALUE x, VALUE y)
return f_fdiv(x, y); return f_fdiv(x, y);
} }
#ifdef CANON
if (canonicalization) { if (canonicalization) {
x = rb_rational_raw1(x); x = rb_rational_raw1(x);
} }
else { else
#endif
{
x = rb_convert_type(x, T_RATIONAL, "Rational", "to_r"); x = rb_convert_type(x, T_RATIONAL, "Rational", "to_r");
} }
return rb_funcall(x, '/', 1, y); return rb_funcall(x, '/', 1, y);