ruby-changes:21012
From: marcandre <ko1@a...>
Date: Thu, 25 Aug 2011 07:58:04 +0900 (JST)
Subject: [ruby-changes:21012] marcandRe: r33061 (trunk): * numeric.c (int_round): Fix Integer#round
marcandre 2011-08-25 07:57:55 +0900 (Thu, 25 Aug 2011) New Revision: 33061 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=33061 Log: * numeric.c (int_round): Fix Integer#round [ruby-core:39096] Modified files: trunk/ChangeLog trunk/numeric.c Index: ChangeLog =================================================================== --- ChangeLog (revision 33060) +++ ChangeLog (revision 33061) @@ -1,3 +1,7 @@ +Thu Aug 25 07:57:33 2011 Marc-Andre Lafortune <ruby-core@m...> + + * numeric.c (int_round): Fix Integer#round [ruby-core:39096] + Thu Aug 25 07:00:00 2011 Koichi Sasada <ko1@a...> * vm_insnhelper.h, vm_insnhelper.c, vm.c, vm_method.c, insns.def: Index: numeric.c =================================================================== --- numeric.c (revision 33060) +++ numeric.c (revision 33061) @@ -3298,6 +3298,7 @@ { VALUE n, f, h, r; int ndigits; + ID op; if (argc == 0) return num; rb_scan_args(argc, argv, "1", &n); @@ -3324,7 +3325,8 @@ h = rb_funcall(f, '/', 1, INT2FIX(2)); r = rb_funcall(num, '%', 1, f); n = rb_funcall(num, '-', 1, r); - if (!RTEST(rb_funcall(r, '<', 1, h))) { + op = RTEST(rb_funcall(num, '<', 1, INT2FIX(0))) ? rb_intern("<=") : '<'; + if (!RTEST(rb_funcall(r, op, 1, h))) { n = rb_funcall(n, '+', 1, f); } return n; -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/