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

ruby-changes:23944

From: shyouhei <ko1@a...>
Date: Sun, 10 Jun 2012 03:12:19 +0900 (JST)
Subject: [ruby-changes:23944] shyouhei:r35995 (ruby_1_8_7): merge revision(s) 32542:

shyouhei	2012-06-10 03:12:07 +0900 (Sun, 10 Jun 2012)

  New Revision: 35995

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

  Log:
    merge revision(s) 32542:
    * eval.c (ruby_setjmp): need to save the stack after r2 (the Table
      of Contents on ppc64) is saved onto the stack by getcontext().
      based on <https://bugzilla.redhat.com/show_bug.cgi?id=628715>.
      Bug#4411

  Modified files:
    branches/ruby_1_8_7/ChangeLog
    branches/ruby_1_8_7/eval.c
    branches/ruby_1_8_7/version.h

Index: ruby_1_8_7/ChangeLog
===================================================================
--- ruby_1_8_7/ChangeLog	(revision 35994)
+++ ruby_1_8_7/ChangeLog	(revision 35995)
@@ -1,3 +1,10 @@
+Sun Jun 10 03:00:21 2012  Nobuyoshi Nakada  <nobu@r...>
+
+	* eval.c (ruby_setjmp): need to save the stack after r2 (the Table
+	  of Contents on ppc64) is saved onto the stack by getcontext().
+	  based on <https://bugzilla.redhat.com/show_bug.cgi?id=628715>.
+	  Bug#4411
+
 Thu Jun  7 19:00:35 2012  Kenta Murata <mrkn@m...>
 
 	* ext/bigdecimal/bigdecimal.c (VpMemAlloc): Fixes a bug reported
Index: ruby_1_8_7/version.h
===================================================================
--- ruby_1_8_7/version.h	(revision 35994)
+++ ruby_1_8_7/version.h	(revision 35995)
@@ -1,15 +1,15 @@
 #define RUBY_VERSION "1.8.7"
-#define RUBY_RELEASE_DATE "2012-06-07"
+#define RUBY_RELEASE_DATE "2012-06-10"
 #define RUBY_VERSION_CODE 187
-#define RUBY_RELEASE_CODE 20120607
-#define RUBY_PATCHLEVEL 367
+#define RUBY_RELEASE_CODE 20120610
+#define RUBY_PATCHLEVEL 368
 
 #define RUBY_VERSION_MAJOR 1
 #define RUBY_VERSION_MINOR 8
 #define RUBY_VERSION_TEENY 7
 #define RUBY_RELEASE_YEAR 2012
 #define RUBY_RELEASE_MONTH 6
-#define RUBY_RELEASE_DAY 7
+#define RUBY_RELEASE_DAY 10
 
 #ifdef RUBY_EXTERN
 RUBY_EXTERN const char ruby_version[];
Index: ruby_1_8_7/eval.c
===================================================================
--- ruby_1_8_7/eval.c	(revision 35994)
+++ ruby_1_8_7/eval.c	(revision 35995)
@@ -179,6 +179,9 @@
        (function_call_may_return_twice_false_2 ? \
         setjmp(function_call_may_return_twice_jmp_buf) : \
         0)
+#  elif defined(__PPC64__)
+#    define JUST_BEFORE_SETJMP(extra_save, j) ((void)0)
+#    define JUST_AFTER_SETJMP(extra_save, j) ((j)->status ? (void)0 : (extra_save))
 #  elif defined(__FreeBSD__) && __FreeBSD__ < 7
 /*
  * workaround for FreeBSD/i386 getcontext/setcontext bug.
@@ -196,16 +199,23 @@
 #  ifndef POST_GETCONTEXT
 #    define POST_GETCONTEXT 0
 #  endif
+#  ifndef JUST_BEFORE_SETJMP
+#    define JUST_BEFORE_SETJMP(extra_save, j) (extra_save)
+#  endif
+#  ifndef JUST_AFTER_SETJMP
+#    define JUST_AFTER_SETJMP(extra_save, j) ((void)0)
+#  endif
 #  define ruby_longjmp(env, val) rb_jump_context(env, val)
-#  define ruby_setjmp(just_before_setjmp, j) ((j)->status = 0, \
-     (just_before_setjmp), \
+#  define ruby_setjmp(extra_save, j) ((j)->status = 0, \
+     JUST_BEFORE_SETJMP(extra_save, j), \
      PRE_GETCONTEXT, \
      getcontext(&(j)->context), \
      POST_GETCONTEXT, \
+     JUST_AFTER_SETJMP(extra_save, j), \
      (j)->status)
 #else
-#  define ruby_setjmp(just_before_setjmp, env) \
-     ((just_before_setjmp), RUBY_SETJMP(env))
+#  define ruby_setjmp(extra_save, env) \
+     ((extra_save), RUBY_SETJMP(env))
 #  define ruby_longjmp(env,val) RUBY_LONGJMP(env,val)
 #  ifdef __CYGWIN__
 int _setjmp(), _longjmp();

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

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