ruby-changes:6824
From: shyouhei <ko1@a...>
Date: Mon, 4 Aug 2008 14:05:55 +0900 (JST)
Subject: [ruby-changes:6824] Ruby:r18339 (ruby_1_8_7): merge revision(s) 18211:
shyouhei 2008-08-04 14:05:38 +0900 (Mon, 04 Aug 2008) New Revision: 18339 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=18339 Log: merge revision(s) 18211: * bignum.c (rb_big2str0, bigsqr): made interruptible. [ruby-Bugs-20622] Modified files: branches/ruby_1_8_7/ChangeLog branches/ruby_1_8_7/bignum.c branches/ruby_1_8_7/common.mk branches/ruby_1_8_7/version.h Index: ruby_1_8_7/ChangeLog =================================================================== --- ruby_1_8_7/ChangeLog (revision 18338) +++ ruby_1_8_7/ChangeLog (revision 18339) @@ -1,3 +1,7 @@ +Mon Aug 4 13:53:42 2008 Nobuyoshi Nakada <nobu@r...> + + * bignum.c (rb_big2str0, bigsqr): made interruptible. [ruby-Bugs-20622] + Mon Aug 4 13:31:41 2008 NAKAMURA Usaku <usa@r...> * numeric.c (check_uint, rb_num2uint, rb_fix2uint): fixed wrong check Index: ruby_1_8_7/version.h =================================================================== --- ruby_1_8_7/version.h (revision 18338) +++ ruby_1_8_7/version.h (revision 18339) @@ -2,7 +2,7 @@ #define RUBY_RELEASE_DATE "2008-08-04" #define RUBY_VERSION_CODE 187 #define RUBY_RELEASE_CODE 20080804 -#define RUBY_PATCHLEVEL 66 +#define RUBY_PATCHLEVEL 67 #define RUBY_VERSION_MAJOR 1 #define RUBY_VERSION_MINOR 8 Index: ruby_1_8_7/bignum.c =================================================================== --- ruby_1_8_7/bignum.c (revision 18338) +++ ruby_1_8_7/bignum.c (revision 18339) @@ -11,6 +11,7 @@ **********************************************************************/ #include "ruby.h" +#include "rubysig.h" #include <math.h> #include <float.h> @@ -720,6 +721,7 @@ s = RSTRING(ss)->ptr; s[0] = RBIGNUM(x)->sign ? '+' : '-'; + TRAP_BEG; while (i && j > 1) { long k = i; BDIGIT_DBL num = 0; @@ -749,6 +751,7 @@ RSTRING(ss)->len = i; } s[RSTRING(ss)->len] = '\0'; + TRAP_END; return ss; } @@ -1735,11 +1738,13 @@ RBIGNUM(z)->len = len; a2 = bigtrunc(rb_big_mul0(a, b)); len = RBIGNUM(a2)->len; + TRAP_BEG; for (i = 0, num = 0; i < len; i++) { num += (BDIGIT_DBL)BDIGITS(z)[i + k] + ((BDIGIT_DBL)BDIGITS(a2)[i] << 1); BDIGITS(z)[i + k] = BIGLO(num); num = BIGDN(num); } + TRAP_END; if (num) { len = RBIGNUM(z)->len; for (i += k; i < len && num; ++i) { Index: ruby_1_8_7/common.mk =================================================================== --- ruby_1_8_7/common.mk (revision 18338) +++ ruby_1_8_7/common.mk (revision 18339) @@ -362,7 +362,8 @@ {$(VPATH)}defines.h {$(VPATH)}intern.h {$(VPATH)}missing.h \ {$(VPATH)}util.h {$(VPATH)}st.h bignum.$(OBJEXT): {$(VPATH)}bignum.c {$(VPATH)}ruby.h config.h \ - {$(VPATH)}defines.h {$(VPATH)}intern.h {$(VPATH)}missing.h + {$(VPATH)}defines.h {$(VPATH)}intern.h {$(VPATH)}missing.h \ + {$(VPATH)}rubysig.h class.$(OBJEXT): {$(VPATH)}class.c {$(VPATH)}ruby.h config.h \ {$(VPATH)}defines.h {$(VPATH)}intern.h {$(VPATH)}missing.h \ {$(VPATH)}rubysig.h {$(VPATH)}node.h {$(VPATH)}st.h -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/