[macruby-changes] [4846] MacRuby/trunk
source_changes at macosforge.org
source_changes at macosforge.org
Fri Oct 29 09:47:29 PDT 2010
Revision: 4846
http://trac.macosforge.org/projects/ruby/changeset/4846
Author: watson1978 at gmail.com
Date: 2010-10-29 09:47:27 -0700 (Fri, 29 Oct 2010)
Log Message:
-----------
rb_num_coerce_relop() was renamed the rb_objc_num_coerce_relop(). And, added new rb_num_coerce_relop() which was compatible with MRI API.
Modified Paths:
--------------
MacRuby/trunk/include/ruby/intern.h
MacRuby/trunk/include/ruby/macruby.h
MacRuby/trunk/numeric.c
Modified: MacRuby/trunk/include/ruby/intern.h
===================================================================
--- MacRuby/trunk/include/ruby/intern.h 2010-10-29 01:06:09 UTC (rev 4845)
+++ MacRuby/trunk/include/ruby/intern.h 2010-10-29 16:47:27 UTC (rev 4846)
@@ -356,6 +356,7 @@
void rb_num_zerodiv(void);
VALUE rb_num_coerce_bin(VALUE, VALUE, ID);
VALUE rb_num_coerce_cmp(VALUE, VALUE, ID);
+VALUE rb_num_coerce_relop(VALUE, VALUE, ID);
VALUE rb_float_new(double);
VALUE rb_num2fix(VALUE);
VALUE rb_fix2str(VALUE, int);
Modified: MacRuby/trunk/include/ruby/macruby.h
===================================================================
--- MacRuby/trunk/include/ruby/macruby.h 2010-10-29 01:06:09 UTC (rev 4845)
+++ MacRuby/trunk/include/ruby/macruby.h 2010-10-29 16:47:27 UTC (rev 4846)
@@ -128,7 +128,7 @@
VALUE rb_objc_num_coerce_bin(VALUE x, VALUE Y, SEL sel);
VALUE rb_objc_num_coerce_cmp(VALUE, VALUE, SEL sel);
-VALUE rb_num_coerce_relop(VALUE, VALUE, SEL);
+VALUE rb_objc_num_coerce_relop(VALUE, VALUE, SEL sel);
VALUE rb_f_kill(VALUE, SEL, int, VALUE*);
VALUE rb_struct_initialize(VALUE, SEL, VALUE);
Modified: MacRuby/trunk/numeric.c
===================================================================
--- MacRuby/trunk/numeric.c 2010-10-29 01:06:09 UTC (rev 4845)
+++ MacRuby/trunk/numeric.c 2010-10-29 16:47:27 UTC (rev 4846)
@@ -212,10 +212,23 @@
}
VALUE
-rb_num_coerce_relop(VALUE x, VALUE y, SEL sel)
+rb_num_coerce_relop(VALUE x, VALUE y, ID func)
{
VALUE c, x0 = x, y0 = y;
+ if (!do_coerce(&x, &y, FALSE) ||
+ NIL_P(c = rb_funcall(x, func, 1, y))) {
+ rb_cmperr(x0, y0);
+ return Qnil; /* not reached */
+ }
+ return c;
+}
+
+VALUE
+rb_objc_num_coerce_relop(VALUE x, VALUE y, SEL sel)
+{
+ VALUE c, x0 = x, y0 = y;
+
if (!do_coerce(&x, &y, Qfalse) ||
NIL_P(c = rb_vm_call(x, sel, 1, &y))) {
rb_cmperr(x0, y0);
@@ -224,6 +237,7 @@
return c;
}
+
/*
* Trap attempts to add methods to <code>Numeric</code> objects. Always
* raises a <code>TypeError</code>
@@ -1070,7 +1084,7 @@
break;
default:
- return rb_num_coerce_relop(x, y, selGT);
+ return rb_objc_num_coerce_relop(x, y, selGT);
}
if (isnan(a)) return Qfalse;
return (a > b)?Qtrue:Qfalse;
@@ -1105,7 +1119,7 @@
break;
default:
- return rb_num_coerce_relop(x, y, selGE);
+ return rb_objc_num_coerce_relop(x, y, selGE);
}
if (isnan(a)) return Qfalse;
return (a >= b)?Qtrue:Qfalse;
@@ -1139,7 +1153,7 @@
break;
default:
- return rb_num_coerce_relop(x, y, selLT);
+ return rb_objc_num_coerce_relop(x, y, selLT);
}
if (isnan(a)) return Qfalse;
return (a < b)?Qtrue:Qfalse;
@@ -1174,7 +1188,7 @@
break;
default:
- return rb_num_coerce_relop(x, y, selLE);
+ return rb_objc_num_coerce_relop(x, y, selLE);
}
if (isnan(a)) return Qfalse;
return (a <= b)?Qtrue:Qfalse;
@@ -2780,7 +2794,7 @@
case T_FLOAT:
return (double)FIX2LONG(x) > RFLOAT_VALUE(y) ? Qtrue : Qfalse;
default:
- return rb_num_coerce_relop(x, y, selGT);
+ return rb_objc_num_coerce_relop(x, y, selGT);
}
}
@@ -2805,7 +2819,7 @@
case T_FLOAT:
return (double)FIX2LONG(x) >= RFLOAT_VALUE(y) ? Qtrue : Qfalse;
default:
- return rb_num_coerce_relop(x, y, selGE);
+ return rb_objc_num_coerce_relop(x, y, selGE);
}
}
@@ -2830,7 +2844,7 @@
case T_FLOAT:
return (double)FIX2LONG(x) < RFLOAT_VALUE(y) ? Qtrue : Qfalse;
default:
- return rb_num_coerce_relop(x, y, selLT);
+ return rb_objc_num_coerce_relop(x, y, selLT);
}
}
@@ -2855,7 +2869,7 @@
case T_FLOAT:
return (double)FIX2LONG(x) <= RFLOAT_VALUE(y) ? Qtrue : Qfalse;
default:
- return rb_num_coerce_relop(x, y, selLE);
+ return rb_objc_num_coerce_relop(x, y, selLE);
}
}
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macruby-changes/attachments/20101029/3c9ea37e/attachment.html>
More information about the macruby-changes
mailing list