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/