[前][次][番号順一覧][スレッド一覧]

ruby-changes:23568

From: nobu <ko1@a...>
Date: Fri, 11 May 2012 14:10:17 +0900 (JST)
Subject: [ruby-changes:23568] nobu:r35619 (ruby_1_9_3, ruby_1_9_2, ruby_1_8, trunk, ruby_1_8_7): * ext/bigdecimal/bigdecimal.c (PUSH): to prevent VALUE from GC,

nobu	2012-05-11 14:09:58 +0900 (Fri, 11 May 2012)

  New Revision: 35619

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=35619

  Log:
    * ext/bigdecimal/bigdecimal.c (PUSH): to prevent VALUE from GC,
      must not cast it to unsigned long, which may be shorter than
      VALUE, and the result can be mere garbage.

  Modified files:
    branches/ruby_1_8/ChangeLog
    branches/ruby_1_8/ext/bigdecimal/bigdecimal.c
    branches/ruby_1_8/version.h
    branches/ruby_1_8_7/ChangeLog
    branches/ruby_1_8_7/ext/bigdecimal/bigdecimal.c
    branches/ruby_1_8_7/version.h
    branches/ruby_1_9_2/ChangeLog
    branches/ruby_1_9_2/ext/bigdecimal/bigdecimal.c
    branches/ruby_1_9_2/version.h
    branches/ruby_1_9_3/ChangeLog
    branches/ruby_1_9_3/ext/bigdecimal/bigdecimal.c
    branches/ruby_1_9_3/version.h
    trunk/ChangeLog
    trunk/ext/bigdecimal/bigdecimal.c

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 35618)
+++ ChangeLog	(revision 35619)
@@ -1,3 +1,9 @@
+Fri May 11 14:09:47 2012  Nobuyoshi Nakada  <nobu@r...>
+
+	* ext/bigdecimal/bigdecimal.c (PUSH): to prevent VALUE from GC,
+	  must not cast it to unsigned long, which may be shorter than
+	  VALUE, and the result can be mere garbage.
+
 Fri May 11 09:51:07 2012  Nobuyoshi Nakada  <nobu@r...>
 
 	* lib/test/unit.rb (Test::Unit::Runner#failed): no unnecessary
Index: ext/bigdecimal/bigdecimal.c
===================================================================
--- ext/bigdecimal/bigdecimal.c	(revision 35618)
+++ ext/bigdecimal/bigdecimal.c	(revision 35619)
@@ -61,7 +61,7 @@
 
 /* MACRO's to guard objects from GC by keeping them in stack */
 #define ENTER(n) volatile VALUE vStack[n];int iStack=0
-#define PUSH(x)  vStack[iStack++] = (unsigned long)(x);
+#define PUSH(x)  vStack[iStack++] = (VALUE)(x);
 #define SAVE(p)  PUSH(p->obj);
 #define GUARD_OBJ(p,y) {p=y;SAVE(p);}
 
Index: ruby_1_8/ext/bigdecimal/bigdecimal.c
===================================================================
--- ruby_1_8/ext/bigdecimal/bigdecimal.c	(revision 35618)
+++ ruby_1_8/ext/bigdecimal/bigdecimal.c	(revision 35619)
@@ -35,7 +35,7 @@
 
 /* MACRO's to guard objects from GC by keeping them in stack */
 #define ENTER(n) volatile VALUE vStack[n];int iStack=0
-#define PUSH(x)  vStack[iStack++] = (unsigned long)(x);
+#define PUSH(x)  vStack[iStack++] = (VALUE)(x);
 #define SAVE(p)  PUSH(p->obj);
 #define GUARD_OBJ(p,y) {p=y;SAVE(p);}
 
Index: ruby_1_8/ChangeLog
===================================================================
--- ruby_1_8/ChangeLog	(revision 35618)
+++ ruby_1_8/ChangeLog	(revision 35619)
@@ -1,3 +1,9 @@
+Fri May 11 14:09:48 2012  Nobuyoshi Nakada  <nobu@r...>
+
+	* ext/bigdecimal/bigdecimal.c (PUSH): to prevent VALUE from GC,
+	  must not cast it to unsigned long, which may be shorter than
+	  VALUE, and the result can be mere garbage.
+
 Sat Apr 14 18:00:59 2012  Nobuyoshi Nakada  <nobu@r...>
 
 	* bignum.c (rb_big2str0): prevent working clone from
Index: ruby_1_8/version.h
===================================================================
--- ruby_1_8/version.h	(revision 35618)
+++ ruby_1_8/version.h	(revision 35619)
@@ -1,15 +1,15 @@
 #define RUBY_VERSION "1.8.8"
-#define RUBY_RELEASE_DATE "2012-04-14"
+#define RUBY_RELEASE_DATE "2012-05-11"
 #define RUBY_VERSION_CODE 188
-#define RUBY_RELEASE_CODE 20120414
+#define RUBY_RELEASE_CODE 20120511
 #define RUBY_PATCHLEVEL -1
 
 #define RUBY_VERSION_MAJOR 1
 #define RUBY_VERSION_MINOR 8
 #define RUBY_VERSION_TEENY 8
 #define RUBY_RELEASE_YEAR 2012
-#define RUBY_RELEASE_MONTH 4
-#define RUBY_RELEASE_DAY 14
+#define RUBY_RELEASE_MONTH 5
+#define RUBY_RELEASE_DAY 11
 
 #define NO_STRING_LITERAL_CONCATENATION 1
 #ifdef RUBY_EXTERN
Index: ruby_1_9_2/ChangeLog
===================================================================
--- ruby_1_9_2/ChangeLog	(revision 35618)
+++ ruby_1_9_2/ChangeLog	(revision 35619)
@@ -1,3 +1,9 @@
+Fri May 11 14:09:48 2012  Nobuyoshi Nakada  <nobu@r...>
+
+	* ext/bigdecimal/bigdecimal.c (PUSH): to prevent VALUE from GC,
+	  must not cast it to unsigned long, which may be shorter than
+	  VALUE, and the result can be mere garbage.
+
 Fri Apr 20 12:40:19 2012  Eric Hodel  <drbrain@s...>
 
 	* lib/rubygems/ssl_certs/AddTrustExternalCARoot.pem:  Removed to avoid
Index: ruby_1_9_2/ext/bigdecimal/bigdecimal.c
===================================================================
--- ruby_1_9_2/ext/bigdecimal/bigdecimal.c	(revision 35618)
+++ ruby_1_9_2/ext/bigdecimal/bigdecimal.c	(revision 35619)
@@ -35,7 +35,7 @@
 
 /* MACRO's to guard objects from GC by keeping them in stack */
 #define ENTER(n) volatile VALUE vStack[n];int iStack=0
-#define PUSH(x)  vStack[iStack++] = (unsigned long)(x);
+#define PUSH(x)  vStack[iStack++] = (VALUE)(x);
 #define SAVE(p)  PUSH(p->obj);
 #define GUARD_OBJ(p,y) {p=y;SAVE(p);}
 
Index: ruby_1_9_2/version.h
===================================================================
--- ruby_1_9_2/version.h	(revision 35618)
+++ ruby_1_9_2/version.h	(revision 35619)
@@ -1,13 +1,13 @@
 #define RUBY_VERSION "1.9.2"
-#define RUBY_PATCHLEVEL 320
+#define RUBY_PATCHLEVEL 321
 #define RUBY_VERSION_MAJOR 1
 #define RUBY_VERSION_MINOR 9
 #define RUBY_VERSION_TEENY 1
 
 #define RUBY_RELEASE_YEAR 2012
-#define RUBY_RELEASE_MONTH 4
-#define RUBY_RELEASE_DAY 20
-#define RUBY_RELEASE_DATE "2012-04-20"
+#define RUBY_RELEASE_MONTH 5
+#define RUBY_RELEASE_DAY 11
+#define RUBY_RELEASE_DATE "2012-05-11"
 
 #include "ruby/version.h"
 
Index: ruby_1_9_3/ChangeLog
===================================================================
--- ruby_1_9_3/ChangeLog	(revision 35618)
+++ ruby_1_9_3/ChangeLog	(revision 35619)
@@ -1,3 +1,9 @@
+Fri May 11 14:09:48 2012  Nobuyoshi Nakada  <nobu@r...>
+
+	* ext/bigdecimal/bigdecimal.c (PUSH): to prevent VALUE from GC,
+	  must not cast it to unsigned long, which may be shorter than
+	  VALUE, and the result can be mere garbage.
+
 Fri May 11 01:04:54 2012  Hiroshi Shirosaki  <h.shirosaki@g...>
 
 	* io.c (io_unread): fix IO#pos with mode 'r' bug on Windows.
Index: ruby_1_9_3/ext/bigdecimal/bigdecimal.c
===================================================================
--- ruby_1_9_3/ext/bigdecimal/bigdecimal.c	(revision 35618)
+++ ruby_1_9_3/ext/bigdecimal/bigdecimal.c	(revision 35619)
@@ -61,7 +61,7 @@
 
 /* MACRO's to guard objects from GC by keeping them in stack */
 #define ENTER(n) volatile VALUE vStack[n];int iStack=0
-#define PUSH(x)  vStack[iStack++] = (unsigned long)(x);
+#define PUSH(x)  vStack[iStack++] = (VALUE)(x);
 #define SAVE(p)  PUSH(p->obj);
 #define GUARD_OBJ(p,y) {p=y;SAVE(p);}
 
Index: ruby_1_9_3/version.h
===================================================================
--- ruby_1_9_3/version.h	(revision 35618)
+++ ruby_1_9_3/version.h	(revision 35619)
@@ -1,5 +1,5 @@
 #define RUBY_VERSION "1.9.3"
-#define RUBY_PATCHLEVEL 208
+#define RUBY_PATCHLEVEL 209
 
 #define RUBY_RELEASE_DATE "2012-05-11"
 #define RUBY_RELEASE_YEAR 2012
Index: ruby_1_8_7/ext/bigdecimal/bigdecimal.c
===================================================================
--- ruby_1_8_7/ext/bigdecimal/bigdecimal.c	(revision 35618)
+++ ruby_1_8_7/ext/bigdecimal/bigdecimal.c	(revision 35619)
@@ -32,7 +32,7 @@
 
 /* MACRO's to guard objects from GC by keeping them in stack */
 #define ENTER(n) volatile VALUE vStack[n];int iStack=0
-#define PUSH(x)  vStack[iStack++] = (unsigned long)(x);
+#define PUSH(x)  vStack[iStack++] = (VALUE)(x);
 #define SAVE(p)  PUSH(p->obj);
 #define GUARD_OBJ(p,y) {p=y;SAVE(p);}
 
Index: ruby_1_8_7/ChangeLog
===================================================================
--- ruby_1_8_7/ChangeLog	(revision 35618)
+++ ruby_1_8_7/ChangeLog	(revision 35619)
@@ -1,3 +1,9 @@
+Fri May 11 14:09:48 2012  Nobuyoshi Nakada  <nobu@r...>
+
+	* ext/bigdecimal/bigdecimal.c (PUSH): to prevent VALUE from GC,
+	  must not cast it to unsigned long, which may be shorter than
+	  VALUE, and the result can be mere garbage.
+
 Sat Apr 14 18:51:41 2012  Nobuyoshi Nakada  <nobu@r...>
 
 	* bignum.c (rb_big2str0): prevent working clone from
Index: ruby_1_8_7/version.h
===================================================================
--- ruby_1_8_7/version.h	(revision 35618)
+++ ruby_1_8_7/version.h	(revision 35619)
@@ -1,15 +1,15 @@
 #define RUBY_VERSION "1.8.7"
-#define RUBY_RELEASE_DATE "2012-04-14"
+#define RUBY_RELEASE_DATE "2012-05-11"
 #define RUBY_VERSION_CODE 187
-#define RUBY_RELEASE_CODE 20120414
-#define RUBY_PATCHLEVEL 361
+#define RUBY_RELEASE_CODE 20120511
+#define RUBY_PATCHLEVEL 362
 
 #define RUBY_VERSION_MAJOR 1
 #define RUBY_VERSION_MINOR 8
 #define RUBY_VERSION_TEENY 7
 #define RUBY_RELEASE_YEAR 2012
-#define RUBY_RELEASE_MONTH 4
-#define RUBY_RELEASE_DAY 14
+#define RUBY_RELEASE_MONTH 5
+#define RUBY_RELEASE_DAY 11
 
 #ifdef RUBY_EXTERN
 RUBY_EXTERN const char ruby_version[];

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]