merge revision(s) 20228:

* ext/bigdecimal/bigdecimal.c (VpMidRound): Round method bug
	  pointed by Ryan Platte fixed(Patch to the patch from "NATORI
	  Shin").  [ruby-talk:273360]
	  back ported from 1.9. fix [ruby-core:19791]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_7@22243 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
shyouhei 2009-02-11 14:37:47 +00:00
parent 79c3f54d78
commit 2fed0e8e6f
3 changed files with 16 additions and 4 deletions

View file

@ -10,6 +10,13 @@ Tue Feb 10 19:40:58 2009 Nobuyoshi Nakada <nobu@ruby-lang.org>
* eval.c (search_required): ditto. * eval.c (search_required): ditto.
Wed Feb 11 23:37:35 2009 Yukihiro Matsumoto <matz@ruby-lang.org>
* ext/bigdecimal/bigdecimal.c (VpMidRound): Round method bug
pointed by Ryan Platte fixed(Patch to the patch from "NATORI
Shin"). [ruby-talk:273360]
back ported from 1.9. fix [ruby-core:19791]
Mon Feb 9 17:35:38 2009 NAKAMURA Usaku <usa@ruby-lang.org> Mon Feb 9 17:35:38 2009 NAKAMURA Usaku <usa@ruby-lang.org>
* win32/win32.c (rb_w32_accept): secure fd before accept because if * win32/win32.c (rb_w32_accept): secure fd before accept because if

View file

@ -4345,6 +4345,11 @@ VpMidRound(Real *y, int f, int nf)
nf += y->exponent*((int)BASE_FIG); nf += y->exponent*((int)BASE_FIG);
exptoadd=0; exptoadd=0;
if (nf < 0) { if (nf < 0) {
/* rounding position too left(large). */
if((f!=VP_ROUND_CEIL) && (f!=VP_ROUND_FLOOR)) {
VpSetZero(y,VpGetSign(y)); /* truncate everything */
return 0;
}
exptoadd = -nf; exptoadd = -nf;
nf = 0; nf = 0;
} }

View file

@ -1,15 +1,15 @@
#define RUBY_VERSION "1.8.7" #define RUBY_VERSION "1.8.7"
#define RUBY_RELEASE_DATE "2009-02-10" #define RUBY_RELEASE_DATE "2009-02-11"
#define RUBY_VERSION_CODE 187 #define RUBY_VERSION_CODE 187
#define RUBY_RELEASE_CODE 20090210 #define RUBY_RELEASE_CODE 20090211
#define RUBY_PATCHLEVEL 113 #define RUBY_PATCHLEVEL 114
#define RUBY_VERSION_MAJOR 1 #define RUBY_VERSION_MAJOR 1
#define RUBY_VERSION_MINOR 8 #define RUBY_VERSION_MINOR 8
#define RUBY_VERSION_TEENY 7 #define RUBY_VERSION_TEENY 7
#define RUBY_RELEASE_YEAR 2009 #define RUBY_RELEASE_YEAR 2009
#define RUBY_RELEASE_MONTH 2 #define RUBY_RELEASE_MONTH 2
#define RUBY_RELEASE_DAY 10 #define RUBY_RELEASE_DAY 11
#ifdef RUBY_EXTERN #ifdef RUBY_EXTERN
RUBY_EXTERN const char ruby_version[]; RUBY_EXTERN const char ruby_version[];